Skip to content

Commit 33a3e32

Browse files
API server should offer metav1 Table/Partial transforms
Now that internal types are equivalent, allow the apiserver to serve metav1 and metav1beta1 depending on the client. Test that in the apiserver integration test and ensure we get the appropriate responses. Register the metav1 type in the appropriate external locations.
1 parent e256c15 commit 33a3e32

File tree

10 files changed

+594
-111
lines changed

10 files changed

+594
-111
lines changed

pkg/kubectl/scheme/install.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ import (
5757
func init() {
5858
// Register external types for Scheme
5959
metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
60-
utilruntime.Must(metav1beta1.AddToScheme(Scheme))
60+
utilruntime.Must(metav1beta1.AddMetaToScheme(Scheme))
61+
utilruntime.Must(metav1.AddMetaToScheme(Scheme))
6162
utilruntime.Must(scheme.AddToScheme(Scheme))
6263

6364
utilruntime.Must(Scheme.SetVersionPriority(corev1.SchemeGroupVersion))

pkg/printers/internalversion/printers.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -539,12 +539,12 @@ func translateTimestampUntil(timestamp metav1.Time) string {
539539
}
540540

541541
var (
542-
podSuccessConditions = []metav1beta1.TableRowCondition{{Type: metav1beta1.RowCompleted, Status: metav1beta1.ConditionTrue, Reason: string(api.PodSucceeded), Message: "The pod has completed successfully."}}
543-
podFailedConditions = []metav1beta1.TableRowCondition{{Type: metav1beta1.RowCompleted, Status: metav1beta1.ConditionTrue, Reason: string(api.PodFailed), Message: "The pod failed."}}
542+
podSuccessConditions = []metav1.TableRowCondition{{Type: metav1.RowCompleted, Status: metav1.ConditionTrue, Reason: string(api.PodSucceeded), Message: "The pod has completed successfully."}}
543+
podFailedConditions = []metav1.TableRowCondition{{Type: metav1.RowCompleted, Status: metav1.ConditionTrue, Reason: string(api.PodFailed), Message: "The pod failed."}}
544544
)
545545

546-
func printPodList(podList *api.PodList, options printers.PrintOptions) ([]metav1beta1.TableRow, error) {
547-
rows := make([]metav1beta1.TableRow, 0, len(podList.Items))
546+
func printPodList(podList *api.PodList, options printers.PrintOptions) ([]metav1.TableRow, error) {
547+
rows := make([]metav1.TableRow, 0, len(podList.Items))
548548
for i := range podList.Items {
549549
r, err := printPod(&podList.Items[i], options)
550550
if err != nil {
@@ -555,7 +555,7 @@ func printPodList(podList *api.PodList, options printers.PrintOptions) ([]metav1
555555
return rows, nil
556556
}
557557

558-
func printPod(pod *api.Pod, options printers.PrintOptions) ([]metav1beta1.TableRow, error) {
558+
func printPod(pod *api.Pod, options printers.PrintOptions) ([]metav1.TableRow, error) {
559559
restarts := 0
560560
totalContainers := len(pod.Spec.Containers)
561561
readyContainers := 0
@@ -565,7 +565,7 @@ func printPod(pod *api.Pod, options printers.PrintOptions) ([]metav1beta1.TableR
565565
reason = pod.Status.Reason
566566
}
567567

568-
row := metav1beta1.TableRow{
568+
row := metav1.TableRow{
569569
Object: runtime.RawExtension{Object: pod},
570570
}
571571

staging/src/k8s.io/apiextensions-apiserver/test/integration/table_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,10 @@ func TestTableGet(t *testing.T) {
148148
codecs := serializer.NewCodecFactory(scheme)
149149
parameterCodec := runtime.NewParameterCodec(scheme)
150150
metav1.AddToGroupVersion(scheme, gv)
151-
scheme.AddKnownTypes(gv, &metav1beta1.Table{}, &metav1beta1.TableOptions{})
151+
scheme.AddKnownTypes(gv, &metav1beta1.TableOptions{})
152+
scheme.AddKnownTypes(gv, &metav1.TableOptions{})
152153
scheme.AddKnownTypes(metav1beta1.SchemeGroupVersion, &metav1beta1.Table{}, &metav1beta1.TableOptions{})
154+
scheme.AddKnownTypes(metav1.SchemeGroupVersion, &metav1.Table{}, &metav1.TableOptions{})
153155

154156
crConfig := *config
155157
crConfig.GroupVersion = &gv

staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ go_library(
4242
importpath = "k8s.io/apimachinery/pkg/api/meta",
4343
deps = [
4444
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
45-
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
4645
"//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library",
4746
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
4847
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",

staging/src/k8s.io/apimachinery/pkg/api/meta/meta.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"reflect"
2222

2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24-
metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1"
2524
"k8s.io/apimachinery/pkg/conversion"
2625
"k8s.io/apimachinery/pkg/runtime"
2726
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -114,12 +113,12 @@ func Accessor(obj interface{}) (metav1.Object, error) {
114113

115114
// AsPartialObjectMetadata takes the metav1 interface and returns a partial object.
116115
// TODO: consider making this solely a conversion action.
117-
func AsPartialObjectMetadata(m metav1.Object) *metav1beta1.PartialObjectMetadata {
116+
func AsPartialObjectMetadata(m metav1.Object) *metav1.PartialObjectMetadata {
118117
switch t := m.(type) {
119118
case *metav1.ObjectMeta:
120-
return &metav1beta1.PartialObjectMetadata{ObjectMeta: *t}
119+
return &metav1.PartialObjectMetadata{ObjectMeta: *t}
121120
default:
122-
return &metav1beta1.PartialObjectMetadata{
121+
return &metav1.PartialObjectMetadata{
123122
ObjectMeta: metav1.ObjectMeta{
124123
Name: m.GetName(),
125124
GenerateName: m.GetGenerateName(),

staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/register.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,4 @@ func AddMetaToScheme(scheme *runtime.Scheme) error {
113113
return scheme.AddConversionFuncs(
114114
Convert_Slice_string_To_v1_IncludeObjectPolicy,
115115
)
116-
117-
// register manually. This usually goes through the SchemeBuilder, which we cannot use here.
118-
//scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...)
119116
}

0 commit comments

Comments
 (0)