Skip to content

Commit 274876e

Browse files
authored
Merge pull request kubernetes#77448 from smarterclayton/api_serve
Support meta.k8s.io/v1 Table and PartialObjectMetadata requests to the API
2 parents 1c18c32 + 33a3e32 commit 274876e

File tree

21 files changed

+680
-770
lines changed

21 files changed

+680
-770
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/internalversion/register.go

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,12 @@ func addToGroupVersion(scheme *runtime.Scheme, groupVersion schema.GroupVersion)
8989
&metav1beta1.PartialObjectMetadata{},
9090
&metav1beta1.PartialObjectMetadataList{},
9191
)
92-
scheme.AddKnownTypes(metav1beta1.SchemeGroupVersion,
93-
&metav1beta1.Table{},
94-
&metav1beta1.TableOptions{},
95-
&metav1beta1.PartialObjectMetadata{},
96-
&metav1beta1.PartialObjectMetadataList{},
97-
)
98-
scheme.AddKnownTypes(metav1.SchemeGroupVersion,
99-
&metav1.Table{},
100-
&metav1.TableOptions{},
101-
&metav1.PartialObjectMetadata{},
102-
&metav1.PartialObjectMetadataList{},
103-
)
92+
if err := metav1beta1.AddMetaToScheme(scheme); err != nil {
93+
return err
94+
}
95+
if err := metav1.AddMetaToScheme(scheme); err != nil {
96+
return err
97+
}
10498
// Allow delete options to be decoded across all version in this scheme (we may want to be more clever than this)
10599
scheme.AddUnversionedTypes(SchemeGroupVersion,
106100
&metav1.DeleteOptions{},

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,23 @@ func init() {
9494
&PatchOptions{},
9595
)
9696

97+
if err := AddMetaToScheme(scheme); err != nil {
98+
panic(err)
99+
}
100+
101+
// register manually. This usually goes through the SchemeBuilder, which we cannot use here.
102+
utilruntime.Must(RegisterDefaults(scheme))
103+
}
104+
105+
func AddMetaToScheme(scheme *runtime.Scheme) error {
97106
scheme.AddKnownTypes(SchemeGroupVersion,
98107
&Table{},
99108
&TableOptions{},
100109
&PartialObjectMetadata{},
101110
&PartialObjectMetadataList{},
102111
)
103112

104-
// register manually. This usually goes through the SchemeBuilder, which we cannot use here.
105-
utilruntime.Must(RegisterDefaults(scheme))
113+
return scheme.AddConversionFuncs(
114+
Convert_Slice_string_To_v1_IncludeObjectPolicy,
115+
)
106116
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,8 +1158,8 @@ type Fields struct {
11581158

11591159
// Table is a tabular representation of a set of API resources. The server transforms the
11601160
// object into a set of preferred columns for quickly reviewing the objects.
1161-
// +protobuf=false
11621161
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
1162+
// +protobuf=false
11631163
type Table struct {
11641164
TypeMeta `json:",inline"`
11651165
// Standard list metadata.

staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/deepcopy.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,3 @@ limitations under the License.
1515
*/
1616

1717
package v1beta1
18-
19-
import "k8s.io/apimachinery/pkg/runtime"
20-
21-
func (in *TableRow) DeepCopy() *TableRow {
22-
if in == nil {
23-
return nil
24-
}
25-
26-
out := new(TableRow)
27-
28-
if in.Cells != nil {
29-
out.Cells = make([]interface{}, len(in.Cells))
30-
for i := range in.Cells {
31-
out.Cells[i] = runtime.DeepCopyJSONValue(in.Cells[i])
32-
}
33-
}
34-
35-
if in.Conditions != nil {
36-
out.Conditions = make([]TableRowCondition, len(in.Conditions))
37-
for i := range in.Conditions {
38-
in.Conditions[i].DeepCopyInto(&out.Conditions[i])
39-
}
40-
}
41-
42-
in.Object.DeepCopyInto(&out.Object)
43-
return out
44-
}

0 commit comments

Comments
 (0)