mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Merge pull request #90148 from deads2k/force-beta-to-have-tags
enforce prerelease-lifecycle generation for beta APIs
This commit is contained in:
commit
c30da3839c
49
hack/verify-prerelease-lifecycle-tags.sh
Executable file
49
hack/verify-prerelease-lifecycle-tags.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright 2020 The Kubernetes Authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This script verifies whether codes follow golang convention.
|
||||
# Usage: `hack/verify-prerelease-lifecycle-tags.sh`.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||
source "${KUBE_ROOT}/hack/lib/init.sh"
|
||||
|
||||
kube::golang::verify_go_version
|
||||
|
||||
cd "${KUBE_ROOT}"
|
||||
if git --no-pager grep -L '// +k8s:prerelease-lifecycle-gen=true' -- 'staging/src/k8s.io/api/**/*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/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-apisever/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
|
@ -28,7 +28,6 @@ import (
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.4
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=authentication.k8s.io,v1,TokenReview
|
||||
|
||||
// TokenReview attempts to authenticate a token to a known user.
|
||||
|
@ -28,7 +28,6 @@ import (
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.2
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SubjectAccessReview
|
||||
|
||||
// SubjectAccessReview checks whether or not a user or group can perform an action.
|
||||
@ -51,7 +50,6 @@ type SubjectAccessReview struct {
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.2
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SelfSubjectAccessReview
|
||||
|
||||
// SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a
|
||||
@ -75,7 +73,6 @@ type SelfSubjectAccessReview struct {
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.2
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,LocalSubjectAccessReview
|
||||
|
||||
// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.
|
||||
@ -205,7 +202,6 @@ type SubjectAccessReviewStatus struct {
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.8
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SelfSubjectRulesReview
|
||||
|
||||
// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.
|
||||
|
@ -375,7 +375,6 @@ type ExternalMetricStatus struct {
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.8
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.25
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2beta2,HorizontalPodAutoscaler
|
||||
|
||||
// HorizontalPodAutoscaler is the configuration for a horizontal pod
|
||||
@ -401,7 +400,6 @@ type HorizontalPodAutoscaler struct {
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.8
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.25
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2beta2,HorizontalPodAutoscalerList
|
||||
|
||||
// HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.
|
||||
|
@ -28,7 +28,6 @@ import (
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.12
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.25
|
||||
|
||||
// HorizontalPodAutoscaler is the configuration for a horizontal pod
|
||||
// autoscaler, which automatically manages the replica count of any resource
|
||||
@ -472,7 +471,6 @@ type MetricValueStatus struct {
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.12
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.25
|
||||
|
||||
// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.
|
||||
type HorizontalPodAutoscalerList struct {
|
||||
|
@ -14,7 +14,6 @@ go_library(
|
||||
"register.go",
|
||||
"types.go",
|
||||
"zz_generated.deepcopy.go",
|
||||
"zz_generated.prerelease-lifecycle.go",
|
||||
],
|
||||
importmap = "k8s.io/kubernetes/vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration",
|
||||
importpath = "k8s.io/kube-aggregator/pkg/apis/apiregistration",
|
||||
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||
|
||||
// +k8s:deepcopy-gen=package
|
||||
// +groupName=apiregistration.k8s.io
|
||||
// +k8s:prerelease-lifecycle-gen=true
|
||||
|
||||
// Package apiregistration is the internal version of the API.
|
||||
package apiregistration // import "k8s.io/kube-aggregator/pkg/apis/apiregistration"
|
||||
|
@ -19,10 +19,6 @@ package apiregistration
|
||||
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.7
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=apiregistration.k8s.io,v1,APIServiceList
|
||||
|
||||
// APIServiceList is a list of APIService objects.
|
||||
type APIServiceList struct {
|
||||
@ -133,10 +129,6 @@ type APIServiceStatus struct {
|
||||
// +genclient
|
||||
// +genclient:nonNamespaced
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.7
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:removed=1.22
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=apiregistration.k8s.io,v1,APIService
|
||||
|
||||
// APIService represents a server for a particular GroupVersion.
|
||||
// Name must be "version.group".
|
||||
|
@ -16,6 +16,7 @@ go_library(
|
||||
"zz_generated.conversion.go",
|
||||
"zz_generated.deepcopy.go",
|
||||
"zz_generated.defaults.go",
|
||||
"zz_generated.prerelease-lifecycle.go",
|
||||
],
|
||||
importmap = "k8s.io/kubernetes/vendor/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1",
|
||||
importpath = "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1",
|
||||
|
@ -20,6 +20,7 @@ limitations under the License.
|
||||
// +k8s:openapi-gen=true
|
||||
// +groupName=apiregistration.k8s.io
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +k8s:prerelease-lifecycle-gen=true
|
||||
|
||||
// Package v1beta1 contains the API Registration API, which is responsible for
|
||||
// registering an API `Group`/`Version` with another kubernetes like API server.
|
||||
|
@ -19,6 +19,9 @@ package v1beta1
|
||||
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.7
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=apiregistration.k8s.io,v1,APIServiceList
|
||||
|
||||
// APIServiceList is a list of APIService objects.
|
||||
type APIServiceList struct {
|
||||
@ -138,6 +141,9 @@ type APIServiceStatus struct {
|
||||
// +genclient
|
||||
// +genclient:nonNamespaced
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.7
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.19
|
||||
// +k8s:prerelease-lifecycle-gen:replacement=apiregistration.k8s.io,v1,APIService
|
||||
|
||||
// APIService represents a server for a particular GroupVersion.
|
||||
// Name must be "version.group".
|
||||
|
@ -18,7 +18,7 @@ limitations under the License.
|
||||
|
||||
// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.
|
||||
|
||||
package apiregistration
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
Loading…
Reference in New Issue
Block a user