Merge pull request #124898 from alexzielenski/apiserver/prerelease-ga-tags

Require prerelease lifecycle tags on GA types
This commit is contained in:
Kubernetes Prow Robot
2024-05-29 08:02:42 -07:00
committed by GitHub
73 changed files with 1736 additions and 56 deletions

View File

@@ -24,24 +24,22 @@ set -o pipefail
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${KUBE_ROOT}/hack/lib/init.sh" source "${KUBE_ROOT}/hack/lib/init.sh"
# Tags must be put on all non-alpha API types
# prerelease-lifecycle-gen itself makes sure every type with TypeMeta in the
# package contains atleast an introduced tag
DIRGLOBS=(
"staging/src/k8s.io/api/**/*/doc.go"
"staging/src/k8s.io/kube-aggregator/pkg/apis/**/*/doc.go"
"staging/src/k8s.io/apiextensions-apiserver/pkg/apis/**/*/doc.go"
)
cd "${KUBE_ROOT}" cd "${KUBE_ROOT}"
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/api/**/*beta*/doc.go'; then for DOCGLOB in "${DIRGLOBS[@]}"; do
echo "!!! Some beta packages doc.go do not include prerelease-lifecycle tags." if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- "$DOCGLOB" ":!*api*/*alpha*/doc.go"; then
echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and" echo "!!! Some non-alpha packages doc.go do not include prerelease-lifecycle tags."
echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta"
exit 1
fi
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/kube-aggregator/pkg/apis/**/*beta*/doc.go'; then
echo "!!! Some beta packages doc.go do not include prerelease-lifecycle tags."
echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and"
echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta"
exit 1
fi
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/apiextensions-apiserver/pkg/apis/**/*beta*/doc.go'; then
echo "!!! Some beta packages doc.go do not include prerelease-lifecycle tags."
echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and" echo "To fix these errors, add '// +k8s:prerelease-lifecycle-gen=true' to doc.go and"
echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta" echo "add '// +k8s:prerelease-lifecycle-gen:introduced=1.<release>' to every type that embeds metav1.TypeMeta"
exit 1 exit 1
fi fi
done

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=false // +k8s:openapi-gen=false
// +k8s:prerelease-lifecycle-gen=true
// +groupName=admission.k8s.io // +groupName=admission.k8s.io
package v1 // import "k8s.io/api/admission/v1" package v1 // import "k8s.io/api/admission/v1"

View File

@@ -24,6 +24,7 @@ import (
) )
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// AdmissionReview describes an admission review request/response. // AdmissionReview describes an admission review request/response.
type AdmissionReview struct { type AdmissionReview struct {

View File

@@ -0,0 +1,28 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *AdmissionReview) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=admissionregistration.k8s.io // +groupName=admissionregistration.k8s.io
// Package v1 is the v1 version of the API. // Package v1 is the v1 version of the API.

View File

@@ -570,11 +570,6 @@ message TypeChecking {
repeated ExpressionWarning expressionWarnings = 1; repeated ExpressionWarning expressionWarnings = 1;
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +genclient
// +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.30
// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it. // ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.
message ValidatingAdmissionPolicy { message ValidatingAdmissionPolicy {
// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.
@@ -688,8 +683,6 @@ message ValidatingAdmissionPolicyBindingSpec {
repeated string validationActions = 4; repeated string validationActions = 4;
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.30
// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy. // ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.
message ValidatingAdmissionPolicyList { message ValidatingAdmissionPolicyList {
// Standard list metadata. // Standard list metadata.

View File

@@ -137,6 +137,7 @@ const (
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.30 // +k8s:prerelease-lifecycle-gen:introduced=1.30
// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it. // ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.
type ValidatingAdmissionPolicy struct { type ValidatingAdmissionPolicy struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
@@ -195,6 +196,7 @@ type ExpressionWarning struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.30 // +k8s:prerelease-lifecycle-gen:introduced=1.30
// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy. // ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.
type ValidatingAdmissionPolicyList struct { type ValidatingAdmissionPolicyList struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
@@ -713,6 +715,7 @@ type NamedRuleWithOperations struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. // ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.
type ValidatingWebhookConfiguration struct { type ValidatingWebhookConfiguration struct {
@@ -730,6 +733,7 @@ type ValidatingWebhookConfiguration struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration. // ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.
type ValidatingWebhookConfigurationList struct { type ValidatingWebhookConfigurationList struct {
@@ -745,6 +749,7 @@ type ValidatingWebhookConfigurationList struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. // MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.
type MutatingWebhookConfiguration struct { type MutatingWebhookConfiguration struct {
@@ -762,6 +767,7 @@ type MutatingWebhookConfiguration struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration. // MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.
type MutatingWebhookConfigurationList struct { type MutatingWebhookConfigurationList struct {

View File

@@ -0,0 +1,70 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *MutatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *MutatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ValidatingAdmissionPolicy) APILifecycleIntroduced() (major, minor int) {
return 1, 30
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ValidatingAdmissionPolicyBinding) APILifecycleIntroduced() (major, minor int) {
return 1, 30
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ValidatingAdmissionPolicyBindingList) APILifecycleIntroduced() (major, minor int) {
return 1, 30
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ValidatingAdmissionPolicyList) APILifecycleIntroduced() (major, minor int) {
return 1, 30
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ValidatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ValidatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=apidiscovery.k8s.io // +groupName=apidiscovery.k8s.io
package v2 // import "k8s.io/api/apidiscovery/v2" package v2 // import "k8s.io/api/apidiscovery/v2"

View File

@@ -21,6 +21,7 @@ import (
) )
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.30
// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery. // APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.
// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated // This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated
@@ -37,6 +38,7 @@ type APIGroupDiscoveryList struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.30
// APIGroupDiscovery holds information about which resources are being served for all version of the API Group. // APIGroupDiscovery holds information about which resources are being served for all version of the API Group.
// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version. // It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v2
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *APIGroupDiscovery) APILifecycleIntroduced() (major, minor int) {
return 1, 30
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *APIGroupDiscoveryList) APILifecycleIntroduced() (major, minor int) {
return 1, 30
}

View File

@@ -17,5 +17,6 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
package v1 // import "k8s.io/api/apps/v1" package v1 // import "k8s.io/api/apps/v1"

View File

@@ -37,6 +37,7 @@ const (
// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// StatefulSet represents a set of pods with consistent identities. // StatefulSet represents a set of pods with consistent identities.
// Identities are defined as: // Identities are defined as:
@@ -336,6 +337,7 @@ type StatefulSetCondition struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// StatefulSetList is a collection of StatefulSets. // StatefulSetList is a collection of StatefulSets.
type StatefulSetList struct { type StatefulSetList struct {
@@ -354,6 +356,7 @@ type StatefulSetList struct {
// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// Deployment enables declarative updates for Pods and ReplicaSets. // Deployment enables declarative updates for Pods and ReplicaSets.
type Deployment struct { type Deployment struct {
@@ -556,6 +559,7 @@ type DeploymentCondition struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// DeploymentList is a list of Deployments. // DeploymentList is a list of Deployments.
type DeploymentList struct { type DeploymentList struct {
@@ -748,6 +752,7 @@ type DaemonSetCondition struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// DaemonSet represents the configuration of a daemon set. // DaemonSet represents the configuration of a daemon set.
type DaemonSet struct { type DaemonSet struct {
@@ -779,6 +784,7 @@ const (
) )
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// DaemonSetList is a collection of daemon sets. // DaemonSetList is a collection of daemon sets.
type DaemonSetList struct { type DaemonSetList struct {
@@ -797,6 +803,7 @@ type DaemonSetList struct {
// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// ReplicaSet ensures that a specified number of pod replicas are running at any given time. // ReplicaSet ensures that a specified number of pod replicas are running at any given time.
type ReplicaSet struct { type ReplicaSet struct {
@@ -824,6 +831,7 @@ type ReplicaSet struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// ReplicaSetList is a collection of ReplicaSets. // ReplicaSetList is a collection of ReplicaSets.
type ReplicaSetList struct { type ReplicaSetList struct {
@@ -926,6 +934,7 @@ type ReplicaSetCondition struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// ControllerRevision implements an immutable snapshot of state data. Clients // ControllerRevision implements an immutable snapshot of state data. Clients
// are responsible for serializing and deserializing the objects that contain // are responsible for serializing and deserializing the objects that contain
@@ -951,6 +960,7 @@ type ControllerRevision struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.9
// ControllerRevisionList is a resource containing a list of ControllerRevision objects. // ControllerRevisionList is a resource containing a list of ControllerRevision objects.
type ControllerRevisionList struct { type ControllerRevisionList struct {

View File

@@ -0,0 +1,82 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ControllerRevision) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ControllerRevisionList) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *DaemonSet) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *DaemonSetList) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Deployment) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ReplicaSet) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ReplicaSetList) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *StatefulSet) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *StatefulSetList) APILifecycleIntroduced() (major, minor int) {
return 1, 9
}

View File

@@ -18,5 +18,6 @@ limitations under the License.
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +groupName=authentication.k8s.io // +groupName=authentication.k8s.io
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
package v1 // import "k8s.io/api/authentication/v1" package v1 // import "k8s.io/api/authentication/v1"

View File

@@ -45,6 +45,7 @@ const (
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:onlyVerbs=create // +genclient:onlyVerbs=create
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.6
// TokenReview attempts to authenticate a token to a known user. // TokenReview attempts to authenticate a token to a known user.
// Note: TokenReview requests may be cached by the webhook token authenticator // Note: TokenReview requests may be cached by the webhook token authenticator
@@ -134,6 +135,7 @@ func (t ExtraValue) String() string {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.10
// TokenRequest requests a token for a given service account. // TokenRequest requests a token for a given service account.
type TokenRequest struct { type TokenRequest struct {
@@ -206,6 +208,7 @@ type BoundObjectReference struct {
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:onlyVerbs=create // +genclient:onlyVerbs=create
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.28
// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. // SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.
// When using impersonation, users will receive the user info of the user being impersonated. If impersonation or // When using impersonation, users will receive the user info of the user being impersonated. If impersonation or

View File

@@ -0,0 +1,40 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *SelfSubjectReview) APILifecycleIntroduced() (major, minor int) {
return 1, 28
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *TokenRequest) APILifecycleIntroduced() (major, minor int) {
return 1, 10
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *TokenReview) APILifecycleIntroduced() (major, minor int) {
return 1, 6
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=authorization.k8s.io // +groupName=authorization.k8s.io
package v1 // import "k8s.io/api/authorization/v1" package v1 // import "k8s.io/api/authorization/v1"

View File

@@ -26,6 +26,7 @@ import (
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:onlyVerbs=create // +genclient:onlyVerbs=create
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.6
// SubjectAccessReview checks whether or not a user or group can perform an action. // SubjectAccessReview checks whether or not a user or group can perform an action.
type SubjectAccessReview struct { type SubjectAccessReview struct {
@@ -47,6 +48,7 @@ type SubjectAccessReview struct {
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:onlyVerbs=create // +genclient:onlyVerbs=create
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a // SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a
// spec.namespace means "in all namespaces". Self is a special case, because users should always be able // spec.namespace means "in all namespaces". Self is a special case, because users should always be able
@@ -69,6 +71,7 @@ type SelfSubjectAccessReview struct {
// +genclient // +genclient
// +genclient:onlyVerbs=create // +genclient:onlyVerbs=create
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. // LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.
// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions // Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions
@@ -198,6 +201,7 @@ type SubjectAccessReviewStatus struct {
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:onlyVerbs=create // +genclient:onlyVerbs=create
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. // SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.
// The returned list of actions may be incomplete depending on the server's authorization mode, // The returned list of actions may be incomplete depending on the server's authorization mode,

View File

@@ -0,0 +1,46 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *LocalSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *SelfSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *SelfSubjectRulesReview) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *SubjectAccessReview) APILifecycleIntroduced() (major, minor int) {
return 1, 6
}

View File

@@ -17,5 +17,6 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
package v1 // import "k8s.io/api/autoscaling/v1" package v1 // import "k8s.io/api/autoscaling/v1"

View File

@@ -83,6 +83,7 @@ type HorizontalPodAutoscalerStatus struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// configuration of a horizontal pod autoscaler. // configuration of a horizontal pod autoscaler.
type HorizontalPodAutoscaler struct { type HorizontalPodAutoscaler struct {
@@ -101,6 +102,7 @@ type HorizontalPodAutoscaler struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// list of horizontal pod autoscaler objects. // list of horizontal pod autoscaler objects.
type HorizontalPodAutoscalerList struct { type HorizontalPodAutoscalerList struct {
@@ -114,6 +116,7 @@ type HorizontalPodAutoscalerList struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// Scale represents a scaling request for a resource. // Scale represents a scaling request for a resource.
type Scale struct { type Scale struct {

View File

@@ -0,0 +1,40 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Scale) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}

View File

@@ -17,5 +17,6 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
package v2 // import "k8s.io/api/autoscaling/v2" package v2 // import "k8s.io/api/autoscaling/v2"

View File

@@ -26,6 +26,7 @@ import (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.23
// HorizontalPodAutoscaler is the configuration for a horizontal pod // HorizontalPodAutoscaler is the configuration for a horizontal pod
// autoscaler, which automatically manages the replica count of any resource // autoscaler, which automatically manages the replica count of any resource
@@ -573,6 +574,7 @@ type MetricValueStatus struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.23
// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects. // HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.
type HorizontalPodAutoscalerList struct { type HorizontalPodAutoscalerList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v2
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {
return 1, 23
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {
return 1, 23
}

View File

@@ -17,5 +17,5 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
package v1 // import "k8s.io/api/batch/v1" package v1 // import "k8s.io/api/batch/v1"

View File

@@ -64,6 +64,7 @@ const (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// Job represents the configuration of a single job. // Job represents the configuration of a single job.
type Job struct { type Job struct {
@@ -85,6 +86,7 @@ type Job struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// JobList is a collection of jobs. // JobList is a collection of jobs.
type JobList struct { type JobList struct {
@@ -689,6 +691,7 @@ type JobTemplateSpec struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.21
// CronJob represents the configuration of a single cron job. // CronJob represents the configuration of a single cron job.
type CronJob struct { type CronJob struct {
@@ -710,6 +713,7 @@ type CronJob struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.21
// CronJobList is a collection of cron jobs. // CronJobList is a collection of cron jobs.
type CronJobList struct { type CronJobList struct {

View File

@@ -0,0 +1,46 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CronJob) APILifecycleIntroduced() (major, minor int) {
return 1, 21
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CronJobList) APILifecycleIntroduced() (major, minor int) {
return 1, 21
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Job) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *JobList) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=certificates.k8s.io // +groupName=certificates.k8s.io
package v1 // import "k8s.io/api/certificates/v1" package v1 // import "k8s.io/api/certificates/v1"

View File

@@ -27,6 +27,7 @@ import (
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:method=UpdateApproval,verb=update,subresource=approval,input=k8s.io/api/certificates/v1.CertificateSigningRequest,result=k8s.io/api/certificates/v1.CertificateSigningRequest // +genclient:method=UpdateApproval,verb=update,subresource=approval,input=k8s.io/api/certificates/v1.CertificateSigningRequest,result=k8s.io/api/certificates/v1.CertificateSigningRequest
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// CertificateSigningRequest objects provide a mechanism to obtain x509 certificates // CertificateSigningRequest objects provide a mechanism to obtain x509 certificates
// by submitting a certificate signing request, and having it asynchronously approved and issued. // by submitting a certificate signing request, and having it asynchronously approved and issued.
@@ -262,6 +263,7 @@ type CertificateSigningRequestCondition struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// CertificateSigningRequestList is a collection of CertificateSigningRequest objects // CertificateSigningRequestList is a collection of CertificateSigningRequest objects
type CertificateSigningRequestList struct { type CertificateSigningRequestList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CertificateSigningRequest) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CertificateSigningRequestList) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=coordination.k8s.io // +groupName=coordination.k8s.io

View File

@@ -22,6 +22,7 @@ import (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.14
// Lease defines a lease concept. // Lease defines a lease concept.
type Lease struct { type Lease struct {
@@ -60,6 +61,7 @@ type LeaseSpec struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// LeaseList is a list of Lease objects. // LeaseList is a list of Lease objects.
type LeaseList struct { type LeaseList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Lease) APILifecycleIntroduced() (major, minor int) {
return 1, 14
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *LeaseList) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:prerelease-lifecycle-gen=true
// Package v1 is the v1 version of the core API. // Package v1 is the v1 version of the core API.
package v1 // import "k8s.io/api/core/v1" package v1 // import "k8s.io/api/core/v1"

View File

@@ -295,6 +295,7 @@ const (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PersistentVolume (PV) is a storage resource provisioned by an administrator. // PersistentVolume (PV) is a storage resource provisioned by an administrator.
// It is analogous to a node. // It is analogous to a node.
@@ -432,6 +433,7 @@ type PersistentVolumeStatus struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PersistentVolumeList is a list of PersistentVolume items. // PersistentVolumeList is a list of PersistentVolume items.
type PersistentVolumeList struct { type PersistentVolumeList struct {
@@ -447,6 +449,7 @@ type PersistentVolumeList struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PersistentVolumeClaim is a user's request for and claim to a persistent volume // PersistentVolumeClaim is a user's request for and claim to a persistent volume
type PersistentVolumeClaim struct { type PersistentVolumeClaim struct {
@@ -469,6 +472,7 @@ type PersistentVolumeClaim struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PersistentVolumeClaimList is a list of PersistentVolumeClaim items. // PersistentVolumeClaimList is a list of PersistentVolumeClaim items.
type PersistentVolumeClaimList struct { type PersistentVolumeClaimList struct {
@@ -4667,6 +4671,7 @@ type PodStatus struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded // PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded
type PodStatusResult struct { type PodStatusResult struct {
@@ -4687,6 +4692,7 @@ type PodStatusResult struct {
// +genclient // +genclient
// +genclient:method=UpdateEphemeralContainers,verb=update,subresource=ephemeralcontainers // +genclient:method=UpdateEphemeralContainers,verb=update,subresource=ephemeralcontainers
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Pod is a collection of containers that can run on a host. This resource is created // Pod is a collection of containers that can run on a host. This resource is created
// by clients and scheduled onto hosts. // by clients and scheduled onto hosts.
@@ -4712,6 +4718,7 @@ type Pod struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodList is a list of Pods. // PodList is a list of Pods.
type PodList struct { type PodList struct {
@@ -4741,6 +4748,7 @@ type PodTemplateSpec struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodTemplate describes a template for creating copies of a predefined pod. // PodTemplate describes a template for creating copies of a predefined pod.
type PodTemplate struct { type PodTemplate struct {
@@ -4757,6 +4765,7 @@ type PodTemplate struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodTemplateList is a list of PodTemplates. // PodTemplateList is a list of PodTemplates.
type PodTemplateList struct { type PodTemplateList struct {
@@ -4871,6 +4880,7 @@ type ReplicationControllerCondition struct {
// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale
// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ReplicationController represents the configuration of a replication controller. // ReplicationController represents the configuration of a replication controller.
type ReplicationController struct { type ReplicationController struct {
@@ -4897,6 +4907,7 @@ type ReplicationController struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ReplicationControllerList is a collection of replication controllers. // ReplicationControllerList is a collection of replication controllers.
type ReplicationControllerList struct { type ReplicationControllerList struct {
@@ -5441,6 +5452,7 @@ type ServicePort struct {
// +genclient // +genclient
// +genclient:skipVerbs=deleteCollection // +genclient:skipVerbs=deleteCollection
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Service is a named abstraction of software service (for example, mysql) consisting of local port // Service is a named abstraction of software service (for example, mysql) consisting of local port
// (for example 3306) that the proxy listens on, and the selector that determines which pods // (for example 3306) that the proxy listens on, and the selector that determines which pods
@@ -5472,6 +5484,7 @@ const (
) )
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ServiceList holds a list of services. // ServiceList holds a list of services.
type ServiceList struct { type ServiceList struct {
@@ -5488,6 +5501,7 @@ type ServiceList struct {
// +genclient // +genclient
// +genclient:method=CreateToken,verb=create,subresource=token,input=k8s.io/api/authentication/v1.TokenRequest,result=k8s.io/api/authentication/v1.TokenRequest // +genclient:method=CreateToken,verb=create,subresource=token,input=k8s.io/api/authentication/v1.TokenRequest,result=k8s.io/api/authentication/v1.TokenRequest
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ServiceAccount binds together: // ServiceAccount binds together:
// * a name, understood by users, and perhaps by peripheral systems, for an identity // * a name, understood by users, and perhaps by peripheral systems, for an identity
@@ -5527,6 +5541,7 @@ type ServiceAccount struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ServiceAccountList is a list of ServiceAccount objects // ServiceAccountList is a list of ServiceAccount objects
type ServiceAccountList struct { type ServiceAccountList struct {
@@ -5543,6 +5558,7 @@ type ServiceAccountList struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Endpoints is a collection of endpoints that implement the actual service. Example: // Endpoints is a collection of endpoints that implement the actual service. Example:
// //
@@ -5664,6 +5680,7 @@ type EndpointPort struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// EndpointsList is a list of endpoints. // EndpointsList is a list of endpoints.
type EndpointsList struct { type EndpointsList struct {
@@ -6132,6 +6149,7 @@ type ResourceList map[ResourceName]resource.Quantity
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Node is a worker node in Kubernetes. // Node is a worker node in Kubernetes.
// Each node will have a unique identifier in the cache (i.e. in etcd). // Each node will have a unique identifier in the cache (i.e. in etcd).
@@ -6156,6 +6174,7 @@ type Node struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// NodeList is the whole list of all Nodes which have been registered with master. // NodeList is the whole list of all Nodes which have been registered with master.
type NodeList struct { type NodeList struct {
@@ -6254,6 +6273,7 @@ type NamespaceCondition struct {
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +genclient:skipVerbs=deleteCollection // +genclient:skipVerbs=deleteCollection
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Namespace provides a scope for Names. // Namespace provides a scope for Names.
// Use of multiple namespaces is optional. // Use of multiple namespaces is optional.
@@ -6276,6 +6296,7 @@ type Namespace struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// NamespaceList is a list of Namespaces. // NamespaceList is a list of Namespaces.
type NamespaceList struct { type NamespaceList struct {
@@ -6291,6 +6312,8 @@ type NamespaceList struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// +k8s:prerelease-lifecycle-gen:deprecated=1.6
// Binding ties one object to another; for example, a pod is bound to a node by a scheduler. // Binding ties one object to another; for example, a pod is bound to a node by a scheduler.
// Deprecated in 1.7, please use the bindings subresource of pods instead. // Deprecated in 1.7, please use the bindings subresource of pods instead.
@@ -6315,6 +6338,7 @@ type Preconditions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodLogOptions is the query options for a Pod's logs REST call. // PodLogOptions is the query options for a Pod's logs REST call.
type PodLogOptions struct { type PodLogOptions struct {
@@ -6367,6 +6391,7 @@ type PodLogOptions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.1
// PodAttachOptions is the query options to a Pod's remote attach call. // PodAttachOptions is the query options to a Pod's remote attach call.
// --- // ---
@@ -6405,6 +6430,7 @@ type PodAttachOptions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodExecOptions is the query options to a Pod's remote exec call. // PodExecOptions is the query options to a Pod's remote exec call.
// --- // ---
@@ -6443,6 +6469,7 @@ type PodExecOptions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.6
// PodPortForwardOptions is the query options to a Pod's port forward call // PodPortForwardOptions is the query options to a Pod's port forward call
// when using WebSockets. // when using WebSockets.
@@ -6462,6 +6489,7 @@ type PodPortForwardOptions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// PodProxyOptions is the query options to a Pod's proxy call. // PodProxyOptions is the query options to a Pod's proxy call.
type PodProxyOptions struct { type PodProxyOptions struct {
@@ -6474,6 +6502,7 @@ type PodProxyOptions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// NodeProxyOptions is the query options to a Node's proxy call. // NodeProxyOptions is the query options to a Node's proxy call.
type NodeProxyOptions struct { type NodeProxyOptions struct {
@@ -6486,6 +6515,7 @@ type NodeProxyOptions struct {
// +k8s:conversion-gen:explicit-from=net/url.Values // +k8s:conversion-gen:explicit-from=net/url.Values
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// ServiceProxyOptions is the query options to a Service's proxy call. // ServiceProxyOptions is the query options to a Service's proxy call.
type ServiceProxyOptions struct { type ServiceProxyOptions struct {
@@ -6588,6 +6618,7 @@ type TypedLocalObjectReference struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// SerializedReference is a reference to serialized object. // SerializedReference is a reference to serialized object.
type SerializedReference struct { type SerializedReference struct {
@@ -6617,6 +6648,7 @@ const (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Event is a report of an event somewhere in the cluster. Events // Event is a report of an event somewhere in the cluster. Events
// have a limited retention time and triggers and messages may evolve // have a limited retention time and triggers and messages may evolve
@@ -6701,6 +6733,7 @@ type EventSeries struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// EventList is a list of events. // EventList is a list of events.
type EventList struct { type EventList struct {
@@ -6715,6 +6748,7 @@ type EventList struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// List holds a list of objects, which may not be known by the server. // List holds a list of objects, which may not be known by the server.
type List metav1.List type List metav1.List
@@ -6762,6 +6796,7 @@ type LimitRangeSpec struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// LimitRange sets resource usage limits for each kind of resource in a Namespace. // LimitRange sets resource usage limits for each kind of resource in a Namespace.
type LimitRange struct { type LimitRange struct {
@@ -6778,6 +6813,7 @@ type LimitRange struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// LimitRangeList is a list of LimitRange items. // LimitRangeList is a list of LimitRange items.
type LimitRangeList struct { type LimitRangeList struct {
@@ -6926,6 +6962,7 @@ type ResourceQuotaStatus struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ResourceQuota sets aggregate quota restrictions enforced per namespace // ResourceQuota sets aggregate quota restrictions enforced per namespace
type ResourceQuota struct { type ResourceQuota struct {
@@ -6947,6 +6984,7 @@ type ResourceQuota struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ResourceQuotaList is a list of ResourceQuota items. // ResourceQuotaList is a list of ResourceQuota items.
type ResourceQuotaList struct { type ResourceQuotaList struct {
@@ -6963,6 +7001,7 @@ type ResourceQuotaList struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Secret holds secret data of a certain type. The total bytes of the values in // Secret holds secret data of a certain type. The total bytes of the values in
// the Data field must be less than MaxSecretSize bytes. // the Data field must be less than MaxSecretSize bytes.
@@ -7089,6 +7128,7 @@ const (
) )
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// SecretList is a list of Secret. // SecretList is a list of Secret.
type SecretList struct { type SecretList struct {
@@ -7105,6 +7145,7 @@ type SecretList struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// ConfigMap holds configuration data for pods to consume. // ConfigMap holds configuration data for pods to consume.
type ConfigMap struct { type ConfigMap struct {
@@ -7141,6 +7182,7 @@ type ConfigMap struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.2
// ConfigMapList is a resource containing a list of ConfigMap objects. // ConfigMapList is a resource containing a list of ConfigMap objects.
type ConfigMapList struct { type ConfigMapList struct {
@@ -7183,6 +7225,7 @@ type ComponentCondition struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// ComponentStatus (and ComponentStatusList) holds the cluster validation info. // ComponentStatus (and ComponentStatusList) holds the cluster validation info.
// Deprecated: This API is deprecated in v1.19+ // Deprecated: This API is deprecated in v1.19+
@@ -7203,6 +7246,7 @@ type ComponentStatus struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// Status of all the conditions for the component as a list of ComponentStatus objects. // Status of all the conditions for the component as a list of ComponentStatus objects.
// Deprecated: This API is deprecated in v1.19+ // Deprecated: This API is deprecated in v1.19+
@@ -7414,6 +7458,7 @@ type WindowsSecurityContextOptions struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.0
// RangeAllocation is not a public type. // RangeAllocation is not a public type.
type RangeAllocation struct { type RangeAllocation struct {

View File

@@ -0,0 +1,280 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Binding) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:deprecated" tags in types.go or "k8s:prerelease-lifecycle-gen:introduced" plus three minor.
func (in *Binding) APILifecycleDeprecated() (major, minor int) {
return 1, 6
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ConfigMap) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ConfigMapList) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Endpoints) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *EndpointsList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Event) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *EventList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *LimitRange) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *LimitRangeList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *List) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Namespace) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *NamespaceList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Node) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *NodeList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *NodeProxyOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PersistentVolume) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PersistentVolumeClaim) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PersistentVolumeClaimList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PersistentVolumeList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Pod) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodAttachOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 1
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodExecOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodLogOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodPortForwardOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 6
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodProxyOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodStatusResult) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodTemplate) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodTemplateList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *RangeAllocation) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ReplicationController) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ReplicationControllerList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ResourceQuota) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ResourceQuotaList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Secret) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *SecretList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *SerializedReference) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Service) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ServiceAccount) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ServiceAccountList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ServiceList) APILifecycleIntroduced() (major, minor int) {
return 1, 0
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ServiceProxyOptions) APILifecycleIntroduced() (major, minor int) {
return 1, 2
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=discovery.k8s.io // +groupName=discovery.k8s.io
package v1 // import "k8s.io/api/discovery/v1" package v1 // import "k8s.io/api/discovery/v1"

View File

@@ -23,6 +23,7 @@ import (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.21
// EndpointSlice represents a subset of the endpoints that implement a service. // EndpointSlice represents a subset of the endpoints that implement a service.
// For a given service there may be multiple EndpointSlice objects, selected by // For a given service there may be multiple EndpointSlice objects, selected by
@@ -206,6 +207,7 @@ type EndpointPort struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.21
// EndpointSliceList represents a list of endpoint slices // EndpointSliceList represents a list of endpoint slices
type EndpointSliceList struct { type EndpointSliceList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *EndpointSlice) APILifecycleIntroduced() (major, minor int) {
return 1, 21
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *EndpointSliceList) APILifecycleIntroduced() (major, minor int) {
return 1, 21
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=events.k8s.io // +groupName=events.k8s.io
package v1 // import "k8s.io/api/events/v1" package v1 // import "k8s.io/api/events/v1"

View File

@@ -23,6 +23,7 @@ import (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. // Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.
// Events have a limited retention time and triggers and messages may evolve // Events have a limited retention time and triggers and messages may evolve
@@ -109,6 +110,7 @@ type EventSeries struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// EventList is a list of Event objects. // EventList is a list of Event objects.
type EventList struct { type EventList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Event) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *EventList) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=flowcontrol.apiserver.k8s.io // +groupName=flowcontrol.apiserver.k8s.io

View File

@@ -106,6 +106,7 @@ const (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.29
// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with // FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with
// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a "flow distinguisher". // similar attributes and is identified by a pair of strings: the name of the FlowSchema and a "flow distinguisher".
@@ -126,6 +127,7 @@ type FlowSchema struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.29
// FlowSchemaList is a list of FlowSchema objects. // FlowSchemaList is a list of FlowSchema objects.
type FlowSchemaList struct { type FlowSchemaList struct {
@@ -381,6 +383,7 @@ type FlowSchemaConditionType string
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.29
// PriorityLevelConfiguration represents the configuration of a priority level. // PriorityLevelConfiguration represents the configuration of a priority level.
type PriorityLevelConfiguration struct { type PriorityLevelConfiguration struct {
@@ -400,6 +403,7 @@ type PriorityLevelConfiguration struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.29
// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. // PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.
type PriorityLevelConfigurationList struct { type PriorityLevelConfigurationList struct {

View File

@@ -0,0 +1,46 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {
return 1, 29
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {
return 1, 29
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {
return 1, 29
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {
return 1, 29
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=networking.k8s.io // +groupName=networking.k8s.io
package v1 // import "k8s.io/api/networking/v1" package v1 // import "k8s.io/api/networking/v1"

View File

@@ -24,6 +24,7 @@ import (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.7
// NetworkPolicy describes what network traffic is allowed for a set of Pods // NetworkPolicy describes what network traffic is allowed for a set of Pods
type NetworkPolicy struct { type NetworkPolicy struct {
@@ -214,6 +215,7 @@ type NetworkPolicyPeer struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// NetworkPolicyList is a list of NetworkPolicy objects. // NetworkPolicyList is a list of NetworkPolicy objects.
type NetworkPolicyList struct { type NetworkPolicyList struct {
@@ -230,6 +232,7 @@ type NetworkPolicyList struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// Ingress is a collection of rules that allow inbound connections to reach the // Ingress is a collection of rules that allow inbound connections to reach the
// endpoints defined by a backend. An Ingress can be configured to give services // endpoints defined by a backend. An Ingress can be configured to give services
@@ -255,6 +258,7 @@ type Ingress struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// IngressList is a collection of Ingress. // IngressList is a collection of Ingress.
type IngressList struct { type IngressList struct {
@@ -542,6 +546,7 @@ type ServiceBackendPort struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// IngressClass represents the class of the Ingress, referenced by the Ingress // IngressClass represents the class of the Ingress, referenced by the Ingress
// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be // Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be
@@ -616,6 +621,7 @@ type IngressClassParametersReference struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.19
// IngressClassList is a collection of IngressClasses. // IngressClassList is a collection of IngressClasses.
type IngressClassList struct { type IngressClassList struct {

View File

@@ -0,0 +1,58 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Ingress) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *IngressClass) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *IngressClassList) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *IngressList) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *NetworkPolicy) APILifecycleIntroduced() (major, minor int) {
return 1, 7
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *NetworkPolicyList) APILifecycleIntroduced() (major, minor int) {
return 1, 19
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=node.k8s.io // +groupName=node.k8s.io
package v1 // import "k8s.io/api/node/v1" package v1 // import "k8s.io/api/node/v1"

View File

@@ -24,6 +24,7 @@ import (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.20
// RuntimeClass defines a class of container runtime supported in the cluster. // RuntimeClass defines a class of container runtime supported in the cluster.
// The RuntimeClass is used to determine which container runtime is used to run // The RuntimeClass is used to determine which container runtime is used to run
@@ -93,6 +94,7 @@ type Scheduling struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.20
// RuntimeClassList is a list of RuntimeClass objects. // RuntimeClassList is a list of RuntimeClass objects.
type RuntimeClassList struct { type RuntimeClassList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *RuntimeClass) APILifecycleIntroduced() (major, minor int) {
return 1, 20
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *RuntimeClassList) APILifecycleIntroduced() (major, minor int) {
return 1, 20
}

View File

@@ -17,6 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// Package policy is for any kind of policy object. Suitable examples, even if // Package policy is for any kind of policy object. Suitable examples, even if
// they aren't all here, are PodDisruptionBudget, // they aren't all here, are PodDisruptionBudget,

View File

@@ -170,6 +170,7 @@ const (
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.21
// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods // PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods
type PodDisruptionBudget struct { type PodDisruptionBudget struct {
@@ -188,6 +189,7 @@ type PodDisruptionBudget struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.21
// PodDisruptionBudgetList is a collection of PodDisruptionBudgets. // PodDisruptionBudgetList is a collection of PodDisruptionBudgets.
type PodDisruptionBudgetList struct { type PodDisruptionBudgetList struct {
@@ -203,6 +205,7 @@ type PodDisruptionBudgetList struct {
// +genclient // +genclient
// +genclient:noVerbs // +genclient:noVerbs
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.22
// Eviction evicts a pod from its node subject to certain policies and safety constraints. // Eviction evicts a pod from its node subject to certain policies and safety constraints.
// This is a subresource of Pod. A request to cause such an eviction is // This is a subresource of Pod. A request to cause such an eviction is

View File

@@ -0,0 +1,40 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Eviction) APILifecycleIntroduced() (major, minor int) {
return 1, 22
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodDisruptionBudget) APILifecycleIntroduced() (major, minor int) {
return 1, 21
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PodDisruptionBudgetList) APILifecycleIntroduced() (major, minor int) {
return 1, 21
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=rbac.authorization.k8s.io // +groupName=rbac.authorization.k8s.io
package v1 // import "k8s.io/api/rbac/v1" package v1 // import "k8s.io/api/rbac/v1"

View File

@@ -106,6 +106,7 @@ type RoleRef struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. // Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.
type Role struct { type Role struct {
@@ -122,6 +123,7 @@ type Role struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. // RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace.
// It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given // It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given
@@ -144,6 +146,7 @@ type RoleBinding struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// RoleBindingList is a collection of RoleBindings // RoleBindingList is a collection of RoleBindings
type RoleBindingList struct { type RoleBindingList struct {
@@ -157,6 +160,7 @@ type RoleBindingList struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// RoleList is a collection of Roles // RoleList is a collection of Roles
type RoleList struct { type RoleList struct {
@@ -172,6 +176,7 @@ type RoleList struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. // ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.
type ClusterRole struct { type ClusterRole struct {
@@ -204,6 +209,7 @@ type AggregationRule struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, // ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace,
// and adds who information via Subject. // and adds who information via Subject.
@@ -225,6 +231,7 @@ type ClusterRoleBinding struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// ClusterRoleBindingList is a collection of ClusterRoleBindings // ClusterRoleBindingList is a collection of ClusterRoleBindings
type ClusterRoleBindingList struct { type ClusterRoleBindingList struct {
@@ -238,6 +245,7 @@ type ClusterRoleBindingList struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.8
// ClusterRoleList is a collection of ClusterRoles // ClusterRoleList is a collection of ClusterRoles
type ClusterRoleList struct { type ClusterRoleList struct {

View File

@@ -0,0 +1,70 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ClusterRole) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ClusterRoleBinding) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ClusterRoleBindingList) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ClusterRoleList) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *Role) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *RoleBinding) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *RoleBindingList) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *RoleList) APILifecycleIntroduced() (major, minor int) {
return 1, 8
}

View File

@@ -17,7 +17,7 @@ limitations under the License.
// +k8s:deepcopy-gen=package // +k8s:deepcopy-gen=package
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=scheduling.k8s.io // +groupName=scheduling.k8s.io
package v1 // import "k8s.io/api/scheduling/v1" package v1 // import "k8s.io/api/scheduling/v1"

View File

@@ -24,6 +24,7 @@ import (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.14
// PriorityClass defines mapping from a priority class name to the priority // PriorityClass defines mapping from a priority class name to the priority
// integer value. The value can be any valid integer. // integer value. The value can be any valid integer.
@@ -59,6 +60,7 @@ type PriorityClass struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.14
// PriorityClassList is a collection of priority classes. // PriorityClassList is a collection of priority classes.
type PriorityClassList struct { type PriorityClassList struct {

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PriorityClass) APILifecycleIntroduced() (major, minor int) {
return 1, 14
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *PriorityClassList) APILifecycleIntroduced() (major, minor int) {
return 1, 14
}

View File

@@ -18,5 +18,6 @@ limitations under the License.
// +k8s:protobuf-gen=package // +k8s:protobuf-gen=package
// +groupName=storage.k8s.io // +groupName=storage.k8s.io
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
package v1 // import "k8s.io/api/storage/v1" package v1 // import "k8s.io/api/storage/v1"

View File

@@ -25,6 +25,7 @@ import (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.6
// StorageClass describes the parameters for a class of storage for // StorageClass describes the parameters for a class of storage for
// which PersistentVolumes can be dynamically provisioned. // which PersistentVolumes can be dynamically provisioned.
@@ -79,6 +80,7 @@ type StorageClass struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.6
// StorageClassList is a collection of storage classes. // StorageClassList is a collection of storage classes.
type StorageClassList struct { type StorageClassList struct {
@@ -112,6 +114,7 @@ const (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.13
// VolumeAttachment captures the intent to attach or detach the specified volume // VolumeAttachment captures the intent to attach or detach the specified volume
// to/from the specified node. // to/from the specified node.
@@ -137,6 +140,7 @@ type VolumeAttachment struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.13
// VolumeAttachmentList is a collection of VolumeAttachment objects. // VolumeAttachmentList is a collection of VolumeAttachment objects.
type VolumeAttachmentList struct { type VolumeAttachmentList struct {
@@ -227,6 +231,7 @@ type VolumeError struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.18
// CSIDriver captures information about a Container Storage Interface (CSI) // CSIDriver captures information about a Container Storage Interface (CSI)
// volume driver deployed on the cluster. // volume driver deployed on the cluster.
@@ -251,6 +256,7 @@ type CSIDriver struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.18
// CSIDriverList is a collection of CSIDriver objects. // CSIDriverList is a collection of CSIDriver objects.
type CSIDriverList struct { type CSIDriverList struct {
@@ -491,6 +497,7 @@ const (
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.17
// CSINode holds information about all CSI drivers installed on a node. // CSINode holds information about all CSI drivers installed on a node.
// CSI drivers do not need to create the CSINode object directly. As long as // CSI drivers do not need to create the CSINode object directly. As long as
@@ -572,6 +579,7 @@ type VolumeNodeResources struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.17
// CSINodeList is a collection of CSINode objects. // CSINodeList is a collection of CSINode objects.
type CSINodeList struct { type CSINodeList struct {
@@ -588,6 +596,7 @@ type CSINodeList struct {
// +genclient // +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.24
// CSIStorageCapacity stores the result of one CSI GetCapacity call. // CSIStorageCapacity stores the result of one CSI GetCapacity call.
// For a given StorageClass, this describes the available capacity in a // For a given StorageClass, this describes the available capacity in a
@@ -673,6 +682,7 @@ type CSIStorageCapacity struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.24
// CSIStorageCapacityList is a collection of CSIStorageCapacity objects. // CSIStorageCapacityList is a collection of CSIStorageCapacity objects.
type CSIStorageCapacityList struct { type CSIStorageCapacityList struct {

View File

@@ -0,0 +1,82 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CSIDriver) APILifecycleIntroduced() (major, minor int) {
return 1, 18
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CSIDriverList) APILifecycleIntroduced() (major, minor int) {
return 1, 18
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CSINode) APILifecycleIntroduced() (major, minor int) {
return 1, 17
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CSINodeList) APILifecycleIntroduced() (major, minor int) {
return 1, 17
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) {
return 1, 24
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) {
return 1, 24
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *StorageClass) APILifecycleIntroduced() (major, minor int) {
return 1, 6
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *StorageClassList) APILifecycleIntroduced() (major, minor int) {
return 1, 6
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) {
return 1, 13
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) {
return 1, 13
}

View File

@@ -19,6 +19,7 @@ limitations under the License.
// +k8s:conversion-gen=k8s.io/apiextensions-apiserver/pkg/apis/apiextensions // +k8s:conversion-gen=k8s.io/apiextensions-apiserver/pkg/apis/apiextensions
// +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen=TypeMeta
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +k8s:prerelease-lifecycle-gen=true
// +groupName=apiextensions.k8s.io // +groupName=apiextensions.k8s.io
// Package v1 is the v1 version of the API. // Package v1 is the v1 version of the API.

View File

@@ -383,6 +383,7 @@ const CustomResourceCleanupFinalizer = "customresourcecleanup.apiextensions.k8s.
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format // CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format
// <.spec.name>.<.spec.group>. // <.spec.name>.<.spec.group>.
@@ -401,6 +402,7 @@ type CustomResourceDefinition struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// CustomResourceDefinitionList is a list of CustomResourceDefinition objects. // CustomResourceDefinitionList is a list of CustomResourceDefinition objects.
type CustomResourceDefinitionList struct { type CustomResourceDefinitionList struct {
@@ -469,6 +471,7 @@ type CustomResourceSubresourceScale struct {
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.16
// ConversionReview describes a conversion request/response. // ConversionReview describes a conversion request/response.
type ConversionReview struct { type ConversionReview struct {

View File

@@ -0,0 +1,40 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *ConversionReview) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CustomResourceDefinition) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *CustomResourceDefinitionList) APILifecycleIntroduced() (major, minor int) {
return 1, 16
}

View File

@@ -20,6 +20,7 @@ import (
"fmt" "fmt"
"io" "io"
"path" "path"
"regexp"
"strconv" "strconv"
"strings" "strings"
@@ -364,6 +365,10 @@ func (g *genPreleaseLifecycle) Imports(c *generator.Context) (imports []string)
return importLines return importLines
} }
var (
isGAVersionRegex = regexp.MustCompile(`^v\d+$`)
)
func (g *genPreleaseLifecycle) argsFromType(c *generator.Context, t *types.Type) (generator.Args, error) { func (g *genPreleaseLifecycle) argsFromType(c *generator.Context, t *types.Type) (generator.Args, error) {
a := generator.Args{ a := generator.Args{
"type": t, "type": t,
@@ -372,37 +377,53 @@ func (g *genPreleaseLifecycle) argsFromType(c *generator.Context, t *types.Type)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// Take version from package last segment.
// Use heuristic to determine whether the package is GA or prerelease.
// If the package is GA, the version matches the format vN where N is a number.
version := path.Base(t.Name.Package)
isGAVersion := isGAVersionRegex.MatchString(version)
a = a. a = a.
With("introducedMajor", introducedMajor). With("introducedMajor", introducedMajor).
With("introducedMinor", introducedMinor) With("introducedMinor", introducedMinor)
// compute based on our policy // compute based on our policy
hasDeprecated := tagExists(deprecatedTagName, t)
hasRemoved := tagExists(removedTagName, t)
deprecatedMajor := introducedMajor deprecatedMajor := introducedMajor
deprecatedMinor := introducedMinor + 3 deprecatedMinor := introducedMinor + 3
// if someone intentionally override the deprecation release // if someone intentionally override the deprecation release
if tagExists(deprecatedTagName, t) { if hasDeprecated {
_, deprecatedMajor, deprecatedMinor, err = extractDeprecatedTag(t) _, deprecatedMajor, deprecatedMinor, err = extractDeprecatedTag(t)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
if !isGAVersion || hasDeprecated {
a = a. a = a.
With("deprecatedMajor", deprecatedMajor). With("deprecatedMajor", deprecatedMajor).
With("deprecatedMinor", deprecatedMinor) With("deprecatedMinor", deprecatedMinor)
}
// compute based on our policy // compute based on our policy
removedMajor := deprecatedMajor removedMajor := deprecatedMajor
removedMinor := deprecatedMinor + 3 removedMinor := deprecatedMinor + 3
// if someone intentionally override the removed release // if someone intentionally override the removed release
if tagExists(removedTagName, t) { if hasRemoved {
_, removedMajor, removedMinor, err = extractRemovedTag(t) _, removedMajor, removedMinor, err = extractRemovedTag(t)
if err != nil { if err != nil {
return nil, err return nil, err
} }
} }
if !isGAVersion || hasRemoved {
a = a. a = a.
With("removedMajor", removedMajor). With("removedMajor", removedMajor).
With("removedMinor", removedMinor) With("removedMinor", removedMinor)
}
replacementGroup, replacementVersion, replacementKind, hasReplacement, err := extractReplacementTag(t) replacementGroup, replacementVersion, replacementKind, hasReplacement, err := extractReplacementTag(t)
if err != nil { if err != nil {
@@ -441,6 +462,8 @@ func (g *genPreleaseLifecycle) GenerateType(c *generator.Context, t *types.Type,
sw.Do(" return $.introducedMajor$, $.introducedMinor$\n", args) sw.Do(" return $.introducedMajor$, $.introducedMinor$\n", args)
sw.Do("}\n\n", nil) sw.Do("}\n\n", nil)
} }
if _, hasDeprecated := args["deprecatedMajor"]; hasDeprecated {
if versionedMethodOrDie("APILifecycleDeprecated", t) == nil { if versionedMethodOrDie("APILifecycleDeprecated", t) == nil {
sw.Do("// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n", args) sw.Do("// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n", args)
sw.Do("// It is controlled by \""+deprecatedTagName+"\" tags in types.go or \""+introducedTagName+"\" plus three minor.\n", args) sw.Do("// It is controlled by \""+deprecatedTagName+"\" tags in types.go or \""+introducedTagName+"\" plus three minor.\n", args)
@@ -448,6 +471,8 @@ func (g *genPreleaseLifecycle) GenerateType(c *generator.Context, t *types.Type,
sw.Do(" return $.deprecatedMajor$, $.deprecatedMinor$\n", args) sw.Do(" return $.deprecatedMajor$, $.deprecatedMinor$\n", args)
sw.Do("}\n\n", nil) sw.Do("}\n\n", nil)
} }
}
if _, hasReplacement := args["replacementKind"]; hasReplacement { if _, hasReplacement := args["replacementKind"]; hasReplacement {
if versionedMethodOrDie("APILifecycleReplacement", t) == nil { if versionedMethodOrDie("APILifecycleReplacement", t) == nil {
sw.Do("// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n", args) sw.Do("// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n", args)
@@ -457,6 +482,8 @@ func (g *genPreleaseLifecycle) GenerateType(c *generator.Context, t *types.Type,
sw.Do("}\n\n", nil) sw.Do("}\n\n", nil)
} }
} }
if _, hasRemoved := args["removedMajor"]; hasRemoved {
if versionedMethodOrDie("APILifecycleRemoved", t) == nil { if versionedMethodOrDie("APILifecycleRemoved", t) == nil {
sw.Do("// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n", args) sw.Do("// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n", args)
sw.Do("// It is controlled by \""+removedTagName+"\" tags in types.go or \""+deprecatedTagName+"\" plus three minor.\n", args) sw.Do("// It is controlled by \""+removedTagName+"\" tags in types.go or \""+deprecatedTagName+"\" plus three minor.\n", args)
@@ -464,6 +491,7 @@ func (g *genPreleaseLifecycle) GenerateType(c *generator.Context, t *types.Type,
sw.Do(" return $.removedMajor$, $.removedMinor$\n", args) sw.Do(" return $.removedMajor$, $.removedMinor$\n", args)
sw.Do("}\n\n", nil) sw.Do("}\n\n", nil)
} }
}
return sw.Error() return sw.Error()
} }

View File

@@ -20,8 +20,11 @@ import (
"fmt" "fmt"
"reflect" "reflect"
"strconv" "strconv"
"strings"
"testing" "testing"
"github.com/google/go-cmp/cmp"
"k8s.io/gengo/v2/generator"
"k8s.io/gengo/v2/types" "k8s.io/gengo/v2/types"
"k8s.io/klog/v2" "k8s.io/klog/v2"
) )
@@ -34,6 +37,248 @@ var mockType = &types.Type{
SecondClosestCommentLines: []string{}, SecondClosestCommentLines: []string{},
} }
func TestArgsFromType(t *testing.T) {
type testcase struct {
name string
t *types.Type
expected generator.Args
expectedError string
}
tests := []testcase{
{
name: "no comments",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1",
},
},
expectedError: `missing`,
},
{
name: "GA type",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
},
},
{
name: "GA type v2",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v2",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
},
},
{
name: "GA type - explicit deprecated",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
"+k8s:prerelease-lifecycle-gen:deprecated=1.7",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 7,
},
},
{
name: "GA type - explicit removed",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
"+k8s:prerelease-lifecycle-gen:removed=1.9",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"removedMajor": 1,
"removedMinor": 9,
},
},
{
name: "GA type - explicit",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
"+k8s:prerelease-lifecycle-gen:deprecated=1.7",
"+k8s:prerelease-lifecycle-gen:removed=1.9",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 7,
"removedMajor": 1,
"removedMinor": 9,
},
},
{
name: "beta type - defaulted",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1beta1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 8,
"removedMajor": 1,
"removedMinor": 11,
},
},
{
name: "beta type - explicit",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1beta1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
"+k8s:prerelease-lifecycle-gen:deprecated=1.7",
"+k8s:prerelease-lifecycle-gen:removed=1.9",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 7,
"removedMajor": 1,
"removedMinor": 9,
},
},
{
name: "beta type - explicit deprecated only",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1beta1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
"+k8s:prerelease-lifecycle-gen:deprecated=1.7",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 7,
"removedMajor": 1,
"removedMinor": 10,
},
},
{
name: "beta type - explicit removed only",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1beta1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
"+k8s:prerelease-lifecycle-gen:removed=1.9",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 8,
"removedMajor": 1,
"removedMinor": 9,
},
},
{
name: "alpha type - defaulted",
t: &types.Type{
Name: types.Name{
Name: "Simple",
Package: "k8s.io/apis/core/v1alpha1",
},
CommentLines: []string{
"+k8s:prerelease-lifecycle-gen:introduced=1.5",
},
},
expected: generator.Args{
"introducedMajor": 1,
"introducedMinor": 5,
"deprecatedMajor": 1,
"deprecatedMinor": 8,
"removedMajor": 1,
"removedMinor": 11,
},
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
if test.expected != nil {
test.expected["type"] = test.t
}
gen := genPreleaseLifecycle{}
args, err := gen.argsFromType(nil, test.t)
if test.expectedError != "" {
if err == nil {
t.Errorf("expected error, got none")
} else if !strings.Contains(err.Error(), test.expectedError) {
t.Errorf("expected error %q, got %q", test.expectedError, err.Error())
}
return
}
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if diff := cmp.Diff(test.expected, args); diff != "" {
t.Error(diff)
}
})
}
}
func Test_extractKubeVersionTag(t *testing.T) { func Test_extractKubeVersionTag(t *testing.T) {
oldKlogOsExit := klog.OsExit oldKlogOsExit := klog.OsExit
defer func() { defer func() {

View File

@@ -20,6 +20,7 @@ limitations under the License.
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
// +groupName=apiregistration.k8s.io // +groupName=apiregistration.k8s.io
// +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen=TypeMeta
// +k8s:prerelease-lifecycle-gen=true
// Package v1 contains the API Registration API, which is responsible for // Package v1 contains the API Registration API, which is responsible for
// registering an API `Group`/`Version` with another kubernetes like API server. // registering an API `Group`/`Version` with another kubernetes like API server.

View File

@@ -19,6 +19,7 @@ package v1
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.10
// APIServiceList is a list of APIService objects. // APIServiceList is a list of APIService objects.
type APIServiceList struct { type APIServiceList struct {
@@ -145,6 +146,7 @@ type APIServiceStatus struct {
// +genclient // +genclient
// +genclient:nonNamespaced // +genclient:nonNamespaced
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:prerelease-lifecycle-gen:introduced=1.10
// APIService represents a server for a particular GroupVersion. // APIService represents a server for a particular GroupVersion.
// Name must be "version.group". // Name must be "version.group".

View File

@@ -0,0 +1,34 @@
//go:build !ignore_autogenerated
// +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 prerelease-lifecycle-gen. DO NOT EDIT.
package v1
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *APIService) APILifecycleIntroduced() (major, minor int) {
return 1, 10
}
// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.
// It is controlled by "k8s:prerelease-lifecycle-gen:introduced" tags in types.go.
func (in *APIServiceList) APILifecycleIntroduced() (major, minor int) {
return 1, 10
}