@@ -17,9 +17,12 @@ limitations under the License.
17
17
package v1alpha1
18
18
19
19
import (
20
+ "context"
21
+
20
22
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21
23
"k8s.io/apimachinery/pkg/runtime"
22
24
"k8s.io/apimachinery/pkg/runtime/schema"
25
+ "sigs.k8s.io/apiserver-runtime/pkg/builder/resource/resourcestrategy"
23
26
)
24
27
25
28
type ExampleResource struct {
@@ -67,3 +70,38 @@ func (e *ExampleResourceList) DeepCopyObject() runtime.Object {
67
70
// implemented by code generation
68
71
return e
69
72
}
73
+
74
+ var _ resourcestrategy.TableConverter = & ExampleResource {}
75
+ var _ resourcestrategy.TableConverter = & ExampleResourceList {}
76
+
77
+ var (
78
+ definitions = []metav1.TableColumnDefinition {
79
+ {Name : "Name" , Type : "string" , Format : "name" , Description : "the name of the cluster" },
80
+ }
81
+ )
82
+
83
+ func (in * ExampleResource ) ConvertToTable (ctx context.Context , tableOptions runtime.Object ) (* metav1.Table , error ) {
84
+ return & metav1.Table {
85
+ ColumnDefinitions : definitions ,
86
+ Rows : []metav1.TableRow {printResource (in )},
87
+ }, nil
88
+ }
89
+
90
+ func (in * ExampleResourceList ) ConvertToTable (ctx context.Context , tableOptions runtime.Object ) (* metav1.Table , error ) {
91
+ t := & metav1.Table {
92
+ ColumnDefinitions : definitions ,
93
+ }
94
+ for _ , c := range in .Items {
95
+ t .Rows = append (t .Rows , printResource (& c ))
96
+ }
97
+ return t , nil
98
+ }
99
+
100
+ func printResource (c * ExampleResource ) metav1.TableRow {
101
+ name := c .Name
102
+ row := metav1.TableRow {
103
+ Object : runtime.RawExtension {Object : c },
104
+ }
105
+ row .Cells = append (row .Cells , name )
106
+ return row
107
+ }
0 commit comments