diff --git a/pkg/printers/BUILD b/pkg/printers/BUILD index 16cf2e36f85..62e1728b278 100644 --- a/pkg/printers/BUILD +++ b/pkg/printers/BUILD @@ -12,7 +12,6 @@ go_library( deps = [ "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", ], diff --git a/pkg/printers/internalversion/BUILD b/pkg/printers/internalversion/BUILD index c84211ad9b3..79cc54c71a5 100644 --- a/pkg/printers/internalversion/BUILD +++ b/pkg/printers/internalversion/BUILD @@ -30,7 +30,6 @@ go_test( "//pkg/printers:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library", @@ -93,7 +92,6 @@ go_library( "//staging/src/k8s.io/api/scheduling/v1:go_default_library", "//staging/src/k8s.io/api/storage/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/pkg/printers/internalversion/printers.go b/pkg/printers/internalversion/printers.go index c62da194e09..c34022a32d7 100644 --- a/pkg/printers/internalversion/printers.go +++ b/pkg/printers/internalversion/printers.go @@ -39,7 +39,6 @@ import ( schedulingv1 "k8s.io/api/scheduling/v1" storagev1 "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -78,7 +77,7 @@ const ( // AddHandlers adds print handlers for default Kubernetes types dealing with internal versions. // TODO: handle errors from Handler func AddHandlers(h printers.PrintHandler) { - podColumnDefinitions := []metav1beta1.TableColumnDefinition{ + podColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Ready", Type: "string", Description: "The aggregate readiness state of this pod for accepting traffic."}, {Name: "Status", Type: "string", Description: "The aggregate status of the containers in this pod."}, @@ -92,7 +91,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(podColumnDefinitions, printPodList) h.TableHandler(podColumnDefinitions, printPod) - podTemplateColumnDefinitions := []metav1beta1.TableColumnDefinition{ + podTemplateColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Containers", Type: "string", Description: "Names of each container in the template."}, {Name: "Images", Type: "string", Description: "Images referenced by each container in the template."}, @@ -101,7 +100,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(podTemplateColumnDefinitions, printPodTemplate) h.TableHandler(podTemplateColumnDefinitions, printPodTemplateList) - podDisruptionBudgetColumnDefinitions := []metav1beta1.TableColumnDefinition{ + podDisruptionBudgetColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Min Available", Type: "string", Description: "The minimum number of pods that must be available."}, {Name: "Max Unavailable", Type: "string", Description: "The maximum number of pods that may be unavailable."}, @@ -111,7 +110,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(podDisruptionBudgetColumnDefinitions, printPodDisruptionBudget) h.TableHandler(podDisruptionBudgetColumnDefinitions, printPodDisruptionBudgetList) - replicationControllerColumnDefinitions := []metav1beta1.TableColumnDefinition{ + replicationControllerColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Desired", Type: "integer", Description: apiv1.ReplicationControllerSpec{}.SwaggerDoc()["replicas"]}, {Name: "Current", Type: "integer", Description: apiv1.ReplicationControllerStatus{}.SwaggerDoc()["replicas"]}, @@ -124,7 +123,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(replicationControllerColumnDefinitions, printReplicationController) h.TableHandler(replicationControllerColumnDefinitions, printReplicationControllerList) - replicaSetColumnDefinitions := []metav1beta1.TableColumnDefinition{ + replicaSetColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Desired", Type: "integer", Description: extensionsv1beta1.ReplicaSetSpec{}.SwaggerDoc()["replicas"]}, {Name: "Current", Type: "integer", Description: extensionsv1beta1.ReplicaSetStatus{}.SwaggerDoc()["replicas"]}, @@ -137,7 +136,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(replicaSetColumnDefinitions, printReplicaSet) h.TableHandler(replicaSetColumnDefinitions, printReplicaSetList) - daemonSetColumnDefinitions := []metav1beta1.TableColumnDefinition{ + daemonSetColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Desired", Type: "integer", Description: extensionsv1beta1.DaemonSetStatus{}.SwaggerDoc()["desiredNumberScheduled"]}, {Name: "Current", Type: "integer", Description: extensionsv1beta1.DaemonSetStatus{}.SwaggerDoc()["currentNumberScheduled"]}, @@ -153,7 +152,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(daemonSetColumnDefinitions, printDaemonSet) h.TableHandler(daemonSetColumnDefinitions, printDaemonSetList) - jobColumnDefinitions := []metav1beta1.TableColumnDefinition{ + jobColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Completions", Type: "string", Description: batchv1.JobStatus{}.SwaggerDoc()["succeeded"]}, {Name: "Duration", Type: "string", Description: "Time required to complete the job."}, @@ -165,7 +164,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(jobColumnDefinitions, printJob) h.TableHandler(jobColumnDefinitions, printJobList) - cronJobColumnDefinitions := []metav1beta1.TableColumnDefinition{ + cronJobColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Schedule", Type: "string", Description: batchv1beta1.CronJobSpec{}.SwaggerDoc()["schedule"]}, {Name: "Suspend", Type: "boolean", Description: batchv1beta1.CronJobSpec{}.SwaggerDoc()["suspend"]}, @@ -179,7 +178,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(cronJobColumnDefinitions, printCronJob) h.TableHandler(cronJobColumnDefinitions, printCronJobList) - serviceColumnDefinitions := []metav1beta1.TableColumnDefinition{ + serviceColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Type", Type: "string", Description: apiv1.ServiceSpec{}.SwaggerDoc()["type"]}, {Name: "Cluster-IP", Type: "string", Description: apiv1.ServiceSpec{}.SwaggerDoc()["clusterIP"]}, @@ -192,7 +191,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(serviceColumnDefinitions, printService) h.TableHandler(serviceColumnDefinitions, printServiceList) - ingressColumnDefinitions := []metav1beta1.TableColumnDefinition{ + ingressColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Hosts", Type: "string", Description: "Hosts that incoming requests are matched against before the ingress rule"}, {Name: "Address", Type: "string", Description: "Address is a list containing ingress points for the load-balancer"}, @@ -202,7 +201,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(ingressColumnDefinitions, printIngress) h.TableHandler(ingressColumnDefinitions, printIngressList) - statefulSetColumnDefinitions := []metav1beta1.TableColumnDefinition{ + statefulSetColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Ready", Type: "string", Description: "Number of the pod with ready state"}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -212,7 +211,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(statefulSetColumnDefinitions, printStatefulSet) h.TableHandler(statefulSetColumnDefinitions, printStatefulSetList) - endpointColumnDefinitions := []metav1beta1.TableColumnDefinition{ + endpointColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Endpoints", Type: "string", Description: apiv1.Endpoints{}.SwaggerDoc()["subsets"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -220,7 +219,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(endpointColumnDefinitions, printEndpoints) h.TableHandler(endpointColumnDefinitions, printEndpointsList) - nodeColumnDefinitions := []metav1beta1.TableColumnDefinition{ + nodeColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Status", Type: "string", Description: "The status of the node"}, {Name: "Roles", Type: "string", Description: "The roles of the node"}, @@ -236,7 +235,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(nodeColumnDefinitions, printNode) h.TableHandler(nodeColumnDefinitions, printNodeList) - eventColumnDefinitions := []metav1beta1.TableColumnDefinition{ + eventColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Last Seen", Type: "string", Description: apiv1.Event{}.SwaggerDoc()["lastTimestamp"]}, {Name: "Type", Type: "string", Description: apiv1.Event{}.SwaggerDoc()["type"]}, {Name: "Reason", Type: "string", Description: apiv1.Event{}.SwaggerDoc()["reason"]}, @@ -251,7 +250,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(eventColumnDefinitions, printEvent) h.TableHandler(eventColumnDefinitions, printEventList) - namespaceColumnDefinitions := []metav1beta1.TableColumnDefinition{ + namespaceColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Status", Type: "string", Description: "The status of the namespace"}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -259,7 +258,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(namespaceColumnDefinitions, printNamespace) h.TableHandler(namespaceColumnDefinitions, printNamespaceList) - secretColumnDefinitions := []metav1beta1.TableColumnDefinition{ + secretColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Type", Type: "string", Description: apiv1.Secret{}.SwaggerDoc()["type"]}, {Name: "Data", Type: "string", Description: apiv1.Secret{}.SwaggerDoc()["data"]}, @@ -268,7 +267,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(secretColumnDefinitions, printSecret) h.TableHandler(secretColumnDefinitions, printSecretList) - serviceAccountColumnDefinitions := []metav1beta1.TableColumnDefinition{ + serviceAccountColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Secrets", Type: "string", Description: apiv1.ServiceAccount{}.SwaggerDoc()["secrets"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -276,7 +275,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(serviceAccountColumnDefinitions, printServiceAccount) h.TableHandler(serviceAccountColumnDefinitions, printServiceAccountList) - persistentVolumeColumnDefinitions := []metav1beta1.TableColumnDefinition{ + persistentVolumeColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Capacity", Type: "string", Description: apiv1.PersistentVolumeSpec{}.SwaggerDoc()["capacity"]}, {Name: "Access Modes", Type: "string", Description: apiv1.PersistentVolumeSpec{}.SwaggerDoc()["accessModes"]}, @@ -291,7 +290,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(persistentVolumeColumnDefinitions, printPersistentVolume) h.TableHandler(persistentVolumeColumnDefinitions, printPersistentVolumeList) - persistentVolumeClaimColumnDefinitions := []metav1beta1.TableColumnDefinition{ + persistentVolumeClaimColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Status", Type: "string", Description: apiv1.PersistentVolumeClaimStatus{}.SwaggerDoc()["phase"]}, {Name: "Volume", Type: "string", Description: apiv1.PersistentVolumeClaimSpec{}.SwaggerDoc()["volumeName"]}, @@ -304,7 +303,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(persistentVolumeClaimColumnDefinitions, printPersistentVolumeClaim) h.TableHandler(persistentVolumeClaimColumnDefinitions, printPersistentVolumeClaimList) - componentStatusColumnDefinitions := []metav1beta1.TableColumnDefinition{ + componentStatusColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Status", Type: "string", Description: "Status of the component conditions"}, {Name: "Message", Type: "string", Description: "Message of the component conditions"}, @@ -313,7 +312,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(componentStatusColumnDefinitions, printComponentStatus) h.TableHandler(componentStatusColumnDefinitions, printComponentStatusList) - deploymentColumnDefinitions := []metav1beta1.TableColumnDefinition{ + deploymentColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Ready", Type: "string", Description: "Number of the pod with ready state"}, {Name: "Up-to-date", Type: "string", Description: extensionsv1beta1.DeploymentStatus{}.SwaggerDoc()["updatedReplicas"]}, @@ -326,7 +325,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(deploymentColumnDefinitions, printDeployment) h.TableHandler(deploymentColumnDefinitions, printDeploymentList) - horizontalPodAutoscalerColumnDefinitions := []metav1beta1.TableColumnDefinition{ + horizontalPodAutoscalerColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Reference", Type: "string", Description: autoscalingv2beta1.HorizontalPodAutoscalerSpec{}.SwaggerDoc()["scaleTargetRef"]}, {Name: "Targets", Type: "string", Description: autoscalingv2beta1.HorizontalPodAutoscalerSpec{}.SwaggerDoc()["metrics"]}, @@ -338,7 +337,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(horizontalPodAutoscalerColumnDefinitions, printHorizontalPodAutoscaler) h.TableHandler(horizontalPodAutoscalerColumnDefinitions, printHorizontalPodAutoscalerList) - configMapColumnDefinitions := []metav1beta1.TableColumnDefinition{ + configMapColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Data", Type: "string", Description: apiv1.ConfigMap{}.SwaggerDoc()["data"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -346,7 +345,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(configMapColumnDefinitions, printConfigMap) h.TableHandler(configMapColumnDefinitions, printConfigMapList) - podSecurityPolicyColumnDefinitions := []metav1beta1.TableColumnDefinition{ + podSecurityPolicyColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Priv", Type: "string", Description: policyv1beta1.PodSecurityPolicySpec{}.SwaggerDoc()["privileged"]}, {Name: "Caps", Type: "string", Description: policyv1beta1.PodSecurityPolicySpec{}.SwaggerDoc()["allowedCapabilities"]}, @@ -360,7 +359,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(podSecurityPolicyColumnDefinitions, printPodSecurityPolicy) h.TableHandler(podSecurityPolicyColumnDefinitions, printPodSecurityPolicyList) - networkPolicyColumnDefinitioins := []metav1beta1.TableColumnDefinition{ + networkPolicyColumnDefinitioins := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Pod-Selector", Type: "string", Description: extensionsv1beta1.NetworkPolicySpec{}.SwaggerDoc()["podSelector"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -368,7 +367,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(networkPolicyColumnDefinitioins, printNetworkPolicy) h.TableHandler(networkPolicyColumnDefinitioins, printNetworkPolicyList) - roleBindingsColumnDefinitions := []metav1beta1.TableColumnDefinition{ + roleBindingsColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, {Name: "Role", Type: "string", Priority: 1, Description: rbacv1beta1.RoleBinding{}.SwaggerDoc()["roleRef"]}, @@ -379,7 +378,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(roleBindingsColumnDefinitions, printRoleBinding) h.TableHandler(roleBindingsColumnDefinitions, printRoleBindingList) - clusterRoleBindingsColumnDefinitions := []metav1beta1.TableColumnDefinition{ + clusterRoleBindingsColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, {Name: "Role", Type: "string", Priority: 1, Description: rbacv1beta1.ClusterRoleBinding{}.SwaggerDoc()["roleRef"]}, @@ -390,7 +389,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(clusterRoleBindingsColumnDefinitions, printClusterRoleBinding) h.TableHandler(clusterRoleBindingsColumnDefinitions, printClusterRoleBindingList) - certificateSigningRequestColumnDefinitions := []metav1beta1.TableColumnDefinition{ + certificateSigningRequestColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, {Name: "Requestor", Type: "string", Description: certificatesv1beta1.CertificateSigningRequestSpec{}.SwaggerDoc()["request"]}, @@ -399,7 +398,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(certificateSigningRequestColumnDefinitions, printCertificateSigningRequest) h.TableHandler(certificateSigningRequestColumnDefinitions, printCertificateSigningRequestList) - leaseColumnDefinitions := []metav1beta1.TableColumnDefinition{ + leaseColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Holder", Type: "string", Description: coordinationv1.LeaseSpec{}.SwaggerDoc()["holderIdentity"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -407,7 +406,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(leaseColumnDefinitions, printLease) h.TableHandler(leaseColumnDefinitions, printLeaseList) - storageClassColumnDefinitions := []metav1beta1.TableColumnDefinition{ + storageClassColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Provisioner", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["provisioner"]}, {Name: "ReclaimPolicy", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["reclaimPolicy"]}, @@ -419,7 +418,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(storageClassColumnDefinitions, printStorageClass) h.TableHandler(storageClassColumnDefinitions, printStorageClassList) - statusColumnDefinitions := []metav1beta1.TableColumnDefinition{ + statusColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Status", Type: "string", Description: metav1.Status{}.SwaggerDoc()["status"]}, {Name: "Reason", Type: "string", Description: metav1.Status{}.SwaggerDoc()["reason"]}, {Name: "Message", Type: "string", Description: metav1.Status{}.SwaggerDoc()["Message"]}, @@ -427,7 +426,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(statusColumnDefinitions, printStatus) - controllerRevisionColumnDefinition := []metav1beta1.TableColumnDefinition{ + controllerRevisionColumnDefinition := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Controller", Type: "string", Description: "Controller of the object"}, {Name: "Revision", Type: "string", Description: appsv1beta1.ControllerRevision{}.SwaggerDoc()["revision"]}, @@ -436,7 +435,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(controllerRevisionColumnDefinition, printControllerRevision) h.TableHandler(controllerRevisionColumnDefinition, printControllerRevisionList) - resourceQuotaColumnDefinitions := []metav1beta1.TableColumnDefinition{ + resourceQuotaColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, {Name: "Request", Type: "string", Description: "Request represents a minimum amount of cpu/memory that a container may consume."}, @@ -445,7 +444,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(resourceQuotaColumnDefinitions, printResourceQuota) h.TableHandler(resourceQuotaColumnDefinitions, printResourceQuotaList) - priorityClassColumnDefinitions := []metav1beta1.TableColumnDefinition{ + priorityClassColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Value", Type: "integer", Description: schedulingv1.PriorityClass{}.SwaggerDoc()["value"]}, {Name: "Global-Default", Type: "boolean", Description: schedulingv1.PriorityClass{}.SwaggerDoc()["globalDefault"]}, @@ -454,7 +453,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(priorityClassColumnDefinitions, printPriorityClass) h.TableHandler(priorityClassColumnDefinitions, printPriorityClassList) - runtimeClassColumnDefinitions := []metav1beta1.TableColumnDefinition{ + runtimeClassColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Handler", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["handler"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, @@ -462,7 +461,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(runtimeClassColumnDefinitions, printRuntimeClass) h.TableHandler(runtimeClassColumnDefinitions, printRuntimeClassList) - volumeAttachmentColumnDefinitions := []metav1beta1.TableColumnDefinition{ + volumeAttachmentColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Attacher", Type: "string", Format: "name", Description: storagev1.VolumeAttachmentSpec{}.SwaggerDoc()["attacher"]}, {Name: "PV", Type: "string", Description: storagev1.VolumeAttachmentSource{}.SwaggerDoc()["persistentVolumeName"]}, @@ -473,7 +472,7 @@ func AddHandlers(h printers.PrintHandler) { h.TableHandler(volumeAttachmentColumnDefinitions, printVolumeAttachment) h.TableHandler(volumeAttachmentColumnDefinitions, printVolumeAttachmentList) - endpointSliceColumnDefinitions := []metav1beta1.TableColumnDefinition{ + endpointSliceColumnDefinitions := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "AddressType", Type: "string", Description: discoveryv1beta1.EndpointSlice{}.SwaggerDoc()["addressType"]}, {Name: "Ports", Type: "string", Description: discoveryv1beta1.EndpointSlice{}.SwaggerDoc()["ports"]}, @@ -743,20 +742,20 @@ func printPod(pod *api.Pod, options printers.GenerateOptions) ([]metav1.TableRow row.Cells = append(row.Cells, podIP, nodeName, nominatedNodeName, readinessGates) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPodTemplate(obj *api.PodTemplate, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printPodTemplate(obj *api.PodTemplate, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } names, images := layoutContainerCells(obj.Template.Spec.Containers) row.Cells = append(row.Cells, obj.Name, names, images, labels.FormatLabels(obj.Template.Labels)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPodTemplateList(list *api.PodTemplateList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printPodTemplateList(list *api.PodTemplateList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printPodTemplate(&list.Items[i], options) if err != nil { @@ -767,8 +766,8 @@ func printPodTemplateList(list *api.PodTemplateList, options printers.GenerateOp return rows, nil } -func printPodDisruptionBudget(obj *policy.PodDisruptionBudget, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printPodDisruptionBudget(obj *policy.PodDisruptionBudget, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -787,11 +786,11 @@ func printPodDisruptionBudget(obj *policy.PodDisruptionBudget, options printers. } row.Cells = append(row.Cells, obj.Name, minAvailable, maxUnavailable, int64(obj.Status.PodDisruptionsAllowed), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPodDisruptionBudgetList(list *policy.PodDisruptionBudgetList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printPodDisruptionBudgetList(list *policy.PodDisruptionBudgetList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printPodDisruptionBudget(&list.Items[i], options) if err != nil { @@ -803,8 +802,8 @@ func printPodDisruptionBudgetList(list *policy.PodDisruptionBudgetList, options } // TODO(AdoHe): try to put wide output in a single method -func printReplicationController(obj *api.ReplicationController, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printReplicationController(obj *api.ReplicationController, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -817,11 +816,11 @@ func printReplicationController(obj *api.ReplicationController, options printers names, images := layoutContainerCells(obj.Spec.Template.Spec.Containers) row.Cells = append(row.Cells, names, images, labels.FormatLabels(obj.Spec.Selector)) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printReplicationControllerList(list *api.ReplicationControllerList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printReplicationControllerList(list *api.ReplicationControllerList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printReplicationController(&list.Items[i], options) if err != nil { @@ -832,8 +831,8 @@ func printReplicationControllerList(list *api.ReplicationControllerList, options return rows, nil } -func printReplicaSet(obj *apps.ReplicaSet, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printReplicaSet(obj *apps.ReplicaSet, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -846,11 +845,11 @@ func printReplicaSet(obj *apps.ReplicaSet, options printers.GenerateOptions) ([] names, images := layoutContainerCells(obj.Spec.Template.Spec.Containers) row.Cells = append(row.Cells, names, images, metav1.FormatLabelSelector(obj.Spec.Selector)) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printReplicaSetList(list *apps.ReplicaSetList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printReplicaSetList(list *apps.ReplicaSetList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printReplicaSet(&list.Items[i], options) if err != nil { @@ -861,8 +860,8 @@ func printReplicaSetList(list *apps.ReplicaSetList, options printers.GenerateOpt return rows, nil } -func printJob(obj *batch.Job, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printJob(obj *batch.Job, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -894,11 +893,11 @@ func printJob(obj *batch.Job, options printers.GenerateOptions) ([]metav1beta1.T names, images := layoutContainerCells(obj.Spec.Template.Spec.Containers) row.Cells = append(row.Cells, names, images, metav1.FormatLabelSelector(obj.Spec.Selector)) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printJobList(list *batch.JobList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printJobList(list *batch.JobList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printJob(&list.Items[i], options) if err != nil { @@ -909,8 +908,8 @@ func printJobList(list *batch.JobList, options printers.GenerateOptions) ([]meta return rows, nil } -func printCronJob(obj *batch.CronJob, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printCronJob(obj *batch.CronJob, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -924,11 +923,11 @@ func printCronJob(obj *batch.CronJob, options printers.GenerateOptions) ([]metav names, images := layoutContainerCells(obj.Spec.JobTemplate.Spec.Template.Spec.Containers) row.Cells = append(row.Cells, names, images, metav1.FormatLabelSelector(obj.Spec.JobTemplate.Spec.Selector)) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printCronJobList(list *batch.CronJobList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printCronJobList(list *batch.CronJobList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printCronJob(&list.Items[i], options) if err != nil { @@ -1003,8 +1002,8 @@ func makePortString(ports []api.ServicePort) string { return strings.Join(pieces, ",") } -func printService(obj *api.Service, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printService(obj *api.Service, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } svcType := obj.Spec.Type @@ -1023,11 +1022,11 @@ func printService(obj *api.Service, options printers.GenerateOptions) ([]metav1b row.Cells = append(row.Cells, labels.FormatLabels(obj.Spec.Selector)) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printServiceList(list *api.ServiceList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printServiceList(list *api.ServiceList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printService(&list.Items[i], options) if err != nil { @@ -1067,8 +1066,8 @@ func formatPorts(tls []networking.IngressTLS) string { return "80" } -func printIngress(obj *networking.Ingress, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printIngress(obj *networking.Ingress, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } hosts := formatHosts(obj.Spec.Rules) @@ -1076,11 +1075,11 @@ func printIngress(obj *networking.Ingress, options printers.GenerateOptions) ([] ports := formatPorts(obj.Spec.TLS) createTime := translateTimestampSince(obj.CreationTimestamp) row.Cells = append(row.Cells, obj.Name, hosts, address, ports, createTime) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printIngressList(list *networking.IngressList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printIngressList(list *networking.IngressList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printIngress(&list.Items[i], options) if err != nil { @@ -1091,8 +1090,8 @@ func printIngressList(list *networking.IngressList, options printers.GenerateOpt return rows, nil } -func printStatefulSet(obj *apps.StatefulSet, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printStatefulSet(obj *apps.StatefulSet, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } desiredReplicas := obj.Spec.Replicas @@ -1103,11 +1102,11 @@ func printStatefulSet(obj *apps.StatefulSet, options printers.GenerateOptions) ( names, images := layoutContainerCells(obj.Spec.Template.Spec.Containers) row.Cells = append(row.Cells, names, images) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printStatefulSetList(list *apps.StatefulSetList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printStatefulSetList(list *apps.StatefulSetList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printStatefulSet(&list.Items[i], options) if err != nil { @@ -1118,8 +1117,8 @@ func printStatefulSetList(list *apps.StatefulSetList, options printers.GenerateO return rows, nil } -func printDaemonSet(obj *apps.DaemonSet, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printDaemonSet(obj *apps.DaemonSet, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1134,11 +1133,11 @@ func printDaemonSet(obj *apps.DaemonSet, options printers.GenerateOptions) ([]me names, images := layoutContainerCells(obj.Spec.Template.Spec.Containers) row.Cells = append(row.Cells, names, images, metav1.FormatLabelSelector(obj.Spec.Selector)) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printDaemonSetList(list *apps.DaemonSetList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printDaemonSetList(list *apps.DaemonSetList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printDaemonSet(&list.Items[i], options) if err != nil { @@ -1149,16 +1148,16 @@ func printDaemonSetList(list *apps.DaemonSetList, options printers.GenerateOptio return rows, nil } -func printEndpoints(obj *api.Endpoints, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printEndpoints(obj *api.Endpoints, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, formatEndpoints(obj, nil), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printEndpointsList(list *api.EndpointsList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printEndpointsList(list *api.EndpointsList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printEndpoints(&list.Items[i], options) if err != nil { @@ -1169,16 +1168,16 @@ func printEndpointsList(list *api.EndpointsList, options printers.GenerateOption return rows, nil } -func printEndpointSlice(obj *discovery.EndpointSlice, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printEndpointSlice(obj *discovery.EndpointSlice, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, string(obj.AddressType), formatDiscoveryPorts(obj.Ports), formatDiscoveryEndpoints(obj.Endpoints), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printEndpointSliceList(list *discovery.EndpointSliceList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printEndpointSliceList(list *discovery.EndpointSliceList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printEndpointSlice(&list.Items[i], options) if err != nil { @@ -1189,16 +1188,16 @@ func printEndpointSliceList(list *discovery.EndpointSliceList, options printers. return rows, nil } -func printNamespace(obj *api.Namespace, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printNamespace(obj *api.Namespace, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, string(obj.Status.Phase), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printNamespaceList(list *api.NamespaceList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printNamespaceList(list *api.NamespaceList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printNamespace(&list.Items[i], options) if err != nil { @@ -1209,16 +1208,16 @@ func printNamespaceList(list *api.NamespaceList, options printers.GenerateOption return rows, nil } -func printSecret(obj *api.Secret, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printSecret(obj *api.Secret, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, string(obj.Type), int64(len(obj.Data)), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printSecretList(list *api.SecretList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printSecretList(list *api.SecretList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printSecret(&list.Items[i], options) if err != nil { @@ -1229,16 +1228,16 @@ func printSecretList(list *api.SecretList, options printers.GenerateOptions) ([] return rows, nil } -func printServiceAccount(obj *api.ServiceAccount, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printServiceAccount(obj *api.ServiceAccount, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, int64(len(obj.Secrets)), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printServiceAccountList(list *api.ServiceAccountList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printServiceAccountList(list *api.ServiceAccountList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printServiceAccount(&list.Items[i], options) if err != nil { @@ -1249,8 +1248,8 @@ func printServiceAccountList(list *api.ServiceAccountList, options printers.Gene return rows, nil } -func printNode(obj *api.Node, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printNode(obj *api.Node, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1297,7 +1296,7 @@ func printNode(obj *api.Node, options printers.GenerateOptions) ([]metav1beta1.T row.Cells = append(row.Cells, getNodeInternalIP(obj), getNodeExternalIP(obj), osImage, kernelVersion, crVersion) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } // Returns first external ip of the node or "" if none is found. @@ -1342,8 +1341,8 @@ func findNodeRoles(node *api.Node) []string { return roles.List() } -func printNodeList(list *api.NodeList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printNodeList(list *api.NodeList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printNode(&list.Items[i], options) if err != nil { @@ -1354,8 +1353,8 @@ func printNodeList(list *api.NodeList, options printers.GenerateOptions) ([]meta return rows, nil } -func printPersistentVolume(obj *api.PersistentVolume, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printPersistentVolume(obj *api.PersistentVolume, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1384,11 +1383,11 @@ func printPersistentVolume(obj *api.PersistentVolume, options printers.GenerateO row.Cells = append(row.Cells, obj.Name, aSize, modesStr, reclaimPolicyStr, string(phase), claimRefUID, helper.GetPersistentVolumeClass(obj), obj.Status.Reason, translateTimestampSince(obj.CreationTimestamp), volumeMode) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPersistentVolumeList(list *api.PersistentVolumeList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printPersistentVolumeList(list *api.PersistentVolumeList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printPersistentVolume(&list.Items[i], options) if err != nil { @@ -1399,8 +1398,8 @@ func printPersistentVolumeList(list *api.PersistentVolumeList, options printers. return rows, nil } -func printPersistentVolumeClaim(obj *api.PersistentVolumeClaim, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printPersistentVolumeClaim(obj *api.PersistentVolumeClaim, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1425,11 +1424,11 @@ func printPersistentVolumeClaim(obj *api.PersistentVolumeClaim, options printers row.Cells = append(row.Cells, obj.Name, string(phase), obj.Spec.VolumeName, capacity, accessModes, helper.GetPersistentVolumeClaimClass(obj), translateTimestampSince(obj.CreationTimestamp), volumeMode) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPersistentVolumeClaimList(list *api.PersistentVolumeClaimList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printPersistentVolumeClaimList(list *api.PersistentVolumeClaimList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printPersistentVolumeClaim(&list.Items[i], options) if err != nil { @@ -1440,8 +1439,8 @@ func printPersistentVolumeClaimList(list *api.PersistentVolumeClaimList, options return rows, nil } -func printEvent(obj *api.Event, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printEvent(obj *api.Event, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1477,12 +1476,12 @@ func printEvent(obj *api.Event, options printers.GenerateOptions) ([]metav1beta1 ) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } // Sorts and prints the EventList in a human-friendly format. -func printEventList(list *api.EventList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printEventList(list *api.EventList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printEvent(&list.Items[i], options) if err != nil { @@ -1493,8 +1492,8 @@ func printEventList(list *api.EventList, options printers.GenerateOptions) ([]me return rows, nil } -func printRoleBinding(obj *rbac.RoleBinding, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printRoleBinding(obj *rbac.RoleBinding, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1504,12 +1503,12 @@ func printRoleBinding(obj *rbac.RoleBinding, options printers.GenerateOptions) ( users, groups, sas, _ := rbac.SubjectsStrings(obj.Subjects) row.Cells = append(row.Cells, roleRef, strings.Join(users, ", "), strings.Join(groups, ", "), strings.Join(sas, ", ")) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } // Prints the RoleBinding in a human-friendly format. -func printRoleBindingList(list *rbac.RoleBindingList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printRoleBindingList(list *rbac.RoleBindingList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printRoleBinding(&list.Items[i], options) if err != nil { @@ -1520,8 +1519,8 @@ func printRoleBindingList(list *rbac.RoleBindingList, options printers.GenerateO return rows, nil } -func printClusterRoleBinding(obj *rbac.ClusterRoleBinding, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printClusterRoleBinding(obj *rbac.ClusterRoleBinding, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1531,12 +1530,12 @@ func printClusterRoleBinding(obj *rbac.ClusterRoleBinding, options printers.Gene users, groups, sas, _ := rbac.SubjectsStrings(obj.Subjects) row.Cells = append(row.Cells, roleRef, strings.Join(users, ", "), strings.Join(groups, ", "), strings.Join(sas, ", ")) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } // Prints the ClusterRoleBinding in a human-friendly format. -func printClusterRoleBindingList(list *rbac.ClusterRoleBindingList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printClusterRoleBindingList(list *rbac.ClusterRoleBindingList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printClusterRoleBinding(&list.Items[i], options) if err != nil { @@ -1547,8 +1546,8 @@ func printClusterRoleBindingList(list *rbac.ClusterRoleBindingList, options prin return rows, nil } -func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } status, err := extractCSRStatus(obj) @@ -1556,7 +1555,7 @@ func printCertificateSigningRequest(obj *certificates.CertificateSigningRequest, return nil, err } row.Cells = append(row.Cells, obj.Name, translateTimestampSince(obj.CreationTimestamp), obj.Spec.Username, status) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } func extractCSRStatus(csr *certificates.CertificateSigningRequest) (string, error) { @@ -1586,8 +1585,8 @@ func extractCSRStatus(csr *certificates.CertificateSigningRequest) (string, erro return status, nil } -func printCertificateSigningRequestList(list *certificates.CertificateSigningRequestList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printCertificateSigningRequestList(list *certificates.CertificateSigningRequestList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printCertificateSigningRequest(&list.Items[i], options) if err != nil { @@ -1598,8 +1597,8 @@ func printCertificateSigningRequestList(list *certificates.CertificateSigningReq return rows, nil } -func printComponentStatus(obj *api.ComponentStatus, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printComponentStatus(obj *api.ComponentStatus, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } status := "Unknown" @@ -1618,11 +1617,11 @@ func printComponentStatus(obj *api.ComponentStatus, options printers.GenerateOpt } } row.Cells = append(row.Cells, obj.Name, status, message, error) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printComponentStatusList(list *api.ComponentStatusList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printComponentStatusList(list *api.ComponentStatusList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printComponentStatus(&list.Items[i], options) if err != nil { @@ -1633,8 +1632,8 @@ func printComponentStatusList(list *api.ComponentStatusList, options printers.Ge return rows, nil } -func printDeployment(obj *apps.Deployment, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printDeployment(obj *apps.Deployment, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } desiredReplicas := obj.Spec.Replicas @@ -1653,11 +1652,11 @@ func printDeployment(obj *apps.Deployment, options printers.GenerateOptions) ([] containers, images := layoutContainerCells(containers) row.Cells = append(row.Cells, containers, images, selector.String()) } - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printDeploymentList(list *apps.DeploymentList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printDeploymentList(list *apps.DeploymentList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printDeployment(&list.Items[i], options) if err != nil { @@ -1742,8 +1741,8 @@ func formatHPAMetrics(specs []autoscaling.MetricSpec, statuses []autoscaling.Met return ret } -func printHorizontalPodAutoscaler(obj *autoscaling.HorizontalPodAutoscaler, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printHorizontalPodAutoscaler(obj *autoscaling.HorizontalPodAutoscaler, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1758,11 +1757,11 @@ func printHorizontalPodAutoscaler(obj *autoscaling.HorizontalPodAutoscaler, opti maxPods := obj.Spec.MaxReplicas currentReplicas := obj.Status.CurrentReplicas row.Cells = append(row.Cells, obj.Name, reference, metrics, minPods, int64(maxPods), int64(currentReplicas), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printHorizontalPodAutoscalerList(list *autoscaling.HorizontalPodAutoscalerList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printHorizontalPodAutoscalerList(list *autoscaling.HorizontalPodAutoscalerList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printHorizontalPodAutoscaler(&list.Items[i], options) if err != nil { @@ -1773,16 +1772,16 @@ func printHorizontalPodAutoscalerList(list *autoscaling.HorizontalPodAutoscalerL return rows, nil } -func printConfigMap(obj *api.ConfigMap, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printConfigMap(obj *api.ConfigMap, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, int64(len(obj.Data)+len(obj.BinaryData)), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printConfigMapList(list *api.ConfigMapList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printConfigMapList(list *api.ConfigMapList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printConfigMap(&list.Items[i], options) if err != nil { @@ -1793,8 +1792,8 @@ func printConfigMapList(list *api.ConfigMapList, options printers.GenerateOption return rows, nil } -func printPodSecurityPolicy(obj *policy.PodSecurityPolicy, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printPodSecurityPolicy(obj *policy.PodSecurityPolicy, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1811,11 +1810,11 @@ func printPodSecurityPolicy(obj *policy.PodSecurityPolicy, options printers.Gene string(obj.Spec.RunAsUser.Rule), string(obj.Spec.FSGroup.Rule), string(obj.Spec.SupplementalGroups.Rule), obj.Spec.ReadOnlyRootFilesystem, strings.Join(volumes, ",")) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPodSecurityPolicyList(list *policy.PodSecurityPolicyList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printPodSecurityPolicyList(list *policy.PodSecurityPolicyList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printPodSecurityPolicy(&list.Items[i], options) if err != nil { @@ -1826,16 +1825,16 @@ func printPodSecurityPolicyList(list *policy.PodSecurityPolicyList, options prin return rows, nil } -func printNetworkPolicy(obj *networking.NetworkPolicy, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printNetworkPolicy(obj *networking.NetworkPolicy, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Name, metav1.FormatLabelSelector(&obj.Spec.PodSelector), translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printNetworkPolicyList(list *networking.NetworkPolicyList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printNetworkPolicyList(list *networking.NetworkPolicyList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printNetworkPolicy(&list.Items[i], options) if err != nil { @@ -1846,8 +1845,8 @@ func printNetworkPolicyList(list *networking.NetworkPolicyList, options printers return rows, nil } -func printStorageClass(obj *storage.StorageClass, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printStorageClass(obj *storage.StorageClass, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1874,11 +1873,11 @@ func printStorageClass(obj *storage.StorageClass, options printers.GenerateOptio row.Cells = append(row.Cells, name, provtype, reclaimPolicy, volumeBindingMode, allowVolumeExpansion, translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printStorageClassList(list *storage.StorageClassList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printStorageClassList(list *storage.StorageClassList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printStorageClass(&list.Items[i], options) if err != nil { @@ -1889,8 +1888,8 @@ func printStorageClassList(list *storage.StorageClassList, options printers.Gene return rows, nil } -func printLease(obj *coordination.Lease, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printLease(obj *coordination.Lease, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1899,11 +1898,11 @@ func printLease(obj *coordination.Lease, options printers.GenerateOptions) ([]me holderIdentity = *obj.Spec.HolderIdentity } row.Cells = append(row.Cells, obj.Name, holderIdentity, translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printLeaseList(list *coordination.LeaseList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printLeaseList(list *coordination.LeaseList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printLease(&list.Items[i], options) if err != nil { @@ -1914,13 +1913,13 @@ func printLeaseList(list *coordination.LeaseList, options printers.GenerateOptio return rows, nil } -func printStatus(obj *metav1.Status, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printStatus(obj *metav1.Status, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, obj.Status, obj.Reason, obj.Message) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } // Lay out all the containers on one line if use wide output. @@ -1948,8 +1947,8 @@ func formatEventSource(es api.EventSource) string { return strings.Join(EventSourceString, ", ") } -func printControllerRevision(obj *apps.ControllerRevision, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printControllerRevision(obj *apps.ControllerRevision, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -1967,11 +1966,11 @@ func printControllerRevision(obj *apps.ControllerRevision, options printers.Gene revision := obj.Revision age := translateTimestampSince(obj.CreationTimestamp) row.Cells = append(row.Cells, obj.Name, controllerName, revision, age) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printControllerRevisionList(list *apps.ControllerRevisionList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printControllerRevisionList(list *apps.ControllerRevisionList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printControllerRevision(&list.Items[i], options) if err != nil { @@ -1992,8 +1991,8 @@ func formatResourceName(kind schema.GroupKind, name string, withKind bool) strin return strings.ToLower(kind.String()) + "/" + name } -func printResourceQuota(resourceQuota *api.ResourceQuota, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printResourceQuota(resourceQuota *api.ResourceQuota, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: resourceQuota}, } @@ -2021,11 +2020,11 @@ func printResourceQuota(resourceQuota *api.ResourceQuota, options printers.Gener age := translateTimestampSince(resourceQuota.CreationTimestamp) row.Cells = append(row.Cells, resourceQuota.Name, age, strings.TrimSuffix(requestColumn.String(), ", "), strings.TrimSuffix(limitColumn.String(), ", ")) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printResourceQuotaList(list *api.ResourceQuotaList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printResourceQuotaList(list *api.ResourceQuotaList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printResourceQuota(&list.Items[i], options) if err != nil { @@ -2036,8 +2035,8 @@ func printResourceQuotaList(list *api.ResourceQuotaList, options printers.Genera return rows, nil } -func printPriorityClass(obj *scheduling.PriorityClass, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printPriorityClass(obj *scheduling.PriorityClass, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -2046,11 +2045,11 @@ func printPriorityClass(obj *scheduling.PriorityClass, options printers.Generate globalDefault := obj.GlobalDefault row.Cells = append(row.Cells, name, int64(value), globalDefault, translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printPriorityClassList(list *scheduling.PriorityClassList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printPriorityClassList(list *scheduling.PriorityClassList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printPriorityClass(&list.Items[i], options) if err != nil { @@ -2061,8 +2060,8 @@ func printPriorityClassList(list *scheduling.PriorityClassList, options printers return rows, nil } -func printRuntimeClass(obj *nodeapi.RuntimeClass, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printRuntimeClass(obj *nodeapi.RuntimeClass, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -2070,11 +2069,11 @@ func printRuntimeClass(obj *nodeapi.RuntimeClass, options printers.GenerateOptio handler := obj.Handler row.Cells = append(row.Cells, name, handler, translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printRuntimeClassList(list *nodeapi.RuntimeClassList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printRuntimeClassList(list *nodeapi.RuntimeClassList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printRuntimeClass(&list.Items[i], options) @@ -2086,8 +2085,8 @@ func printRuntimeClassList(list *nodeapi.RuntimeClassList, options printers.Gene return rows, nil } -func printVolumeAttachment(obj *storage.VolumeAttachment, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - row := metav1beta1.TableRow{ +func printVolumeAttachment(obj *storage.VolumeAttachment, options printers.GenerateOptions) ([]metav1.TableRow, error) { + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } @@ -2098,11 +2097,11 @@ func printVolumeAttachment(obj *storage.VolumeAttachment, options printers.Gener } row.Cells = append(row.Cells, name, obj.Spec.Attacher, pvName, obj.Spec.NodeName, obj.Status.Attached, translateTimestampSince(obj.CreationTimestamp)) - return []metav1beta1.TableRow{row}, nil + return []metav1.TableRow{row}, nil } -func printVolumeAttachmentList(list *storage.VolumeAttachmentList, options printers.GenerateOptions) ([]metav1beta1.TableRow, error) { - rows := make([]metav1beta1.TableRow, 0, len(list.Items)) +func printVolumeAttachmentList(list *storage.VolumeAttachmentList, options printers.GenerateOptions) ([]metav1.TableRow, error) { + rows := make([]metav1.TableRow, 0, len(list.Items)) for i := range list.Items { r, err := printVolumeAttachment(&list.Items[i], options) if err != nil { diff --git a/pkg/printers/internalversion/printers_test.go b/pkg/printers/internalversion/printers_test.go index ed6be0fc8ae..0805bec4e68 100644 --- a/pkg/printers/internalversion/printers_test.go +++ b/pkg/printers/internalversion/printers_test.go @@ -23,7 +23,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/intstr" @@ -67,7 +66,7 @@ type TestPrintHandler struct { numCalls int } -func (t *TestPrintHandler) TableHandler(columnDefinitions []metav1beta1.TableColumnDefinition, printFunc interface{}) error { +func (t *TestPrintHandler) TableHandler(columnDefinitions []metav1.TableColumnDefinition, printFunc interface{}) error { t.numCalls++ return nil } @@ -88,7 +87,7 @@ func TestPrintEvent(t *testing.T) { tests := []struct { event api.Event options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic event; no generate options { @@ -109,7 +108,7 @@ func TestPrintEvent(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Last Seen, Type, Reason, Object, Message - expected: []metav1beta1.TableRow{{Cells: []interface{}{"2d", "Normal", "Event Reason", "pod/Pod Name", "Message Data"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"2d", "Normal", "Event Reason", "pod/Pod Name", "Message Data"}}}, }, // Basic event; generate options=Wide { @@ -133,7 +132,7 @@ func TestPrintEvent(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Last Seen, Type, Reason, Object, Subobject, Message, First Seen, Count, Name - expected: []metav1beta1.TableRow{{Cells: []interface{}{"2d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(6), "event2"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"2d", "Warning", "Event Reason", "deployment/Deployment Name", "spec.containers{foo}", "kubelet, Node1", "Message Data", "3d", int64(6), "event2"}}}, }, } @@ -210,7 +209,7 @@ func TestPrintEventsResultSorted(t *testing.T) { func TestPrintNamespace(t *testing.T) { tests := []struct { namespace api.Namespace - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic namespace with status and age. { @@ -224,7 +223,7 @@ func TestPrintNamespace(t *testing.T) { }, }, // Columns: Name, Status, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"namespace1", "FooStatus", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"namespace1", "FooStatus", "0s"}}}, }, // Basic namespace without status or age. { @@ -234,7 +233,7 @@ func TestPrintNamespace(t *testing.T) { }, }, // Columns: Name, Status, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"namespace2", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"namespace2", "", ""}}}, }, } @@ -255,7 +254,7 @@ func TestPrintNamespace(t *testing.T) { func TestPrintSecret(t *testing.T) { tests := []struct { secret api.Secret - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic namespace with type, data, and age. { @@ -270,7 +269,7 @@ func TestPrintSecret(t *testing.T) { }, }, // Columns: Name, Type, Data, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"secret1", "kubernetes.io/service-account-token", int64(1), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"secret1", "kubernetes.io/service-account-token", int64(1), "0s"}}}, }, // Basic namespace with type and age; no data. { @@ -282,7 +281,7 @@ func TestPrintSecret(t *testing.T) { Type: "kubernetes.io/service-account-token", }, // Columns: Name, Type, Data, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"secret1", "kubernetes.io/service-account-token", int64(0), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"secret1", "kubernetes.io/service-account-token", int64(0), "0s"}}}, }, } @@ -303,7 +302,7 @@ func TestPrintSecret(t *testing.T) { func TestPrintServiceAccount(t *testing.T) { tests := []struct { serviceAccount api.ServiceAccount - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic service account without secrets { @@ -315,7 +314,7 @@ func TestPrintServiceAccount(t *testing.T) { Secrets: []api.ObjectReference{}, }, // Columns: Name, (Num) Secrets, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sa1", int64(0), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"sa1", int64(0), "0s"}}}, }, // Basic service account with two secrets. { @@ -330,7 +329,7 @@ func TestPrintServiceAccount(t *testing.T) { }, }, // Columns: Name, (Num) Secrets, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sa1", int64(2), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"sa1", int64(2), "0s"}}}, }, } @@ -352,7 +351,7 @@ func TestPrintNodeStatus(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -360,7 +359,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo1", "Ready", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo1", "Ready", "", "", ""}}}, }, { node: api.Node{ @@ -369,7 +368,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo2", "Ready,SchedulingDisabled", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo2", "Ready,SchedulingDisabled", "", "", ""}}}, }, { node: api.Node{ @@ -379,7 +378,7 @@ func TestPrintNodeStatus(t *testing.T) { {Type: api.NodeReady, Status: api.ConditionTrue}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo3", "Ready", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo3", "Ready", "", "", ""}}}, }, { node: api.Node{ @@ -387,7 +386,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionFalse}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo4", "NotReady", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo4", "NotReady", "", "", ""}}}, }, { node: api.Node{ @@ -396,7 +395,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionFalse}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo5", "NotReady,SchedulingDisabled", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo5", "NotReady,SchedulingDisabled", "", "", ""}}}, }, { node: api.Node{ @@ -404,7 +403,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: "InvalidValue", Status: api.ConditionTrue}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo6", "Unknown", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo6", "Unknown", "", "", ""}}}, }, { node: api.Node{ @@ -412,7 +411,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo7", "Unknown", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo7", "Unknown", "", "", ""}}}, }, { node: api.Node{ @@ -421,7 +420,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: "InvalidValue", Status: api.ConditionTrue}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo8", "Unknown,SchedulingDisabled", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo8", "Unknown,SchedulingDisabled", "", "", ""}}}, }, { node: api.Node{ @@ -430,7 +429,7 @@ func TestPrintNodeStatus(t *testing.T) { Status: api.NodeStatus{Conditions: []api.NodeCondition{{}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo9", "Unknown,SchedulingDisabled", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo9", "Unknown,SchedulingDisabled", "", "", ""}}}, }, } @@ -452,14 +451,14 @@ func TestPrintNodeRole(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ ObjectMeta: metav1.ObjectMeta{Name: "foo9"}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo9", "Unknown", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo9", "Unknown", "", "", ""}}}, }, { node: api.Node{ @@ -469,7 +468,7 @@ func TestPrintNodeRole(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo10", "Unknown", "master,node,proxy", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo10", "Unknown", "master,node,proxy", "", ""}}}, }, { node: api.Node{ @@ -479,7 +478,7 @@ func TestPrintNodeRole(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"foo11", "Unknown", "node", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"foo11", "Unknown", "node", "", ""}}}, }, } @@ -501,7 +500,7 @@ func TestPrintNodeOSImage(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -512,7 +511,7 @@ func TestPrintNodeOSImage(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo1", "Unknown", "", "", "", "", "1.1.1.1", "fake-os-image", "", ""}, }, @@ -527,7 +526,7 @@ func TestPrintNodeOSImage(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo2", "Unknown", "", "", "", "", "1.1.1.1", "", "fake-kernel-version", ""}, }, @@ -553,7 +552,7 @@ func TestPrintNodeKernelVersion(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -564,7 +563,7 @@ func TestPrintNodeKernelVersion(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo1", "Unknown", "", "", "", "", "1.1.1.1", "", "fake-kernel-version", ""}, }, @@ -579,7 +578,7 @@ func TestPrintNodeKernelVersion(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo2", "Unknown", "", "", "", "", "1.1.1.1", "fake-os-image", "", ""}, }, @@ -605,7 +604,7 @@ func TestPrintNodeContainerRuntimeVersion(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -616,7 +615,7 @@ func TestPrintNodeContainerRuntimeVersion(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo1", "Unknown", "", "", "", "", "1.1.1.1", "", "", "foo://1.2.3"}, }, @@ -631,7 +630,7 @@ func TestPrintNodeContainerRuntimeVersion(t *testing.T) { }, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo2", "Unknown", "", "", "", "", "1.1.1.1", "", "", ""}, }, @@ -657,7 +656,7 @@ func TestPrintNodeName(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -665,14 +664,14 @@ func TestPrintNodeName(t *testing.T) { Status: api.NodeStatus{}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"127.0.0.1", "Unknown", "", "", ""}}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"127.0.0.1", "Unknown", "", "", ""}}}}, { node: api.Node{ ObjectMeta: metav1.ObjectMeta{Name: ""}, Status: api.NodeStatus{}, }, // Columns: Name, Status, Roles, Age, KubeletVersion - expected: []metav1beta1.TableRow{{Cells: []interface{}{"", "Unknown", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"", "Unknown", "", "", ""}}}, }, } @@ -694,7 +693,7 @@ func TestPrintNodeExternalIP(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -702,7 +701,7 @@ func TestPrintNodeExternalIP(t *testing.T) { Status: api.NodeStatus{Addresses: []api.NodeAddress{{Type: api.NodeExternalIP, Address: "1.1.1.1"}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo1", "Unknown", "", "", "", "", "1.1.1.1", "", "", ""}, }, @@ -714,7 +713,7 @@ func TestPrintNodeExternalIP(t *testing.T) { Status: api.NodeStatus{Addresses: []api.NodeAddress{{Type: api.NodeInternalIP, Address: "1.1.1.1"}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo2", "Unknown", "", "", "", "1.1.1.1", "", "", "", ""}, }, @@ -729,7 +728,7 @@ func TestPrintNodeExternalIP(t *testing.T) { {Type: api.NodeExternalIP, Address: "4.4.4.4"}, }}, }, - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo3", "Unknown", "", "", "", "3.3.3.3", "2.2.2.2", "", "", ""}, }, @@ -755,7 +754,7 @@ func TestPrintNodeInternalIP(t *testing.T) { table := []struct { node api.Node - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { node: api.Node{ @@ -763,7 +762,7 @@ func TestPrintNodeInternalIP(t *testing.T) { Status: api.NodeStatus{Addresses: []api.NodeAddress{{Type: api.NodeInternalIP, Address: "1.1.1.1"}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo1", "Unknown", "", "", "", "1.1.1.1", "", "", "", ""}, }, @@ -775,7 +774,7 @@ func TestPrintNodeInternalIP(t *testing.T) { Status: api.NodeStatus{Addresses: []api.NodeAddress{{Type: api.NodeExternalIP, Address: "1.1.1.1"}}}, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo2", "Unknown", "", "", "", "", "1.1.1.1", "", "", ""}, }, @@ -791,7 +790,7 @@ func TestPrintNodeInternalIP(t *testing.T) { }}, }, // Columns: Name, Status, Roles, Age, KubeletVersion, NodeInternalIP, NodeExternalIP, OSImage, KernelVersion, ContainerRuntimeVersion - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"foo3", "Unknown", "", "", "", "2.2.2.2", "3.3.3.3", "", "", ""}, }, @@ -837,7 +836,7 @@ func TestPrintIngress(t *testing.T) { }, } // Columns: Name, Hosts, Address, Ports, Age - expected := []metav1beta1.TableRow{{Cells: []interface{}{"test1", "*", "2.3.4.5", "80", "10y"}}} + expected := []metav1.TableRow{{Cells: []interface{}{"test1", "*", "2.3.4.5", "80", "10y"}}} rows, err := printIngress(&ingress, printers.GenerateOptions{}) if err != nil { @@ -853,7 +852,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { tests := []struct { service api.Service options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Test load balancer service with multiple external IP's { @@ -871,7 +870,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"service1", "LoadBalancer", "1.2.3.4", "2.3.4.5,3.4.5.6", "80/TCP", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"service1", "LoadBalancer", "1.2.3.4", "2.3.4.5,3.4.5.6", "80/TCP", ""}}}, }, // Test load balancer service with pending external IP. { @@ -885,7 +884,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"service2", "LoadBalancer", "1.3.4.5", "", "80/TCP,8090/UDP,8000/TCP,7777/SCTP", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"service2", "LoadBalancer", "1.3.4.5", "", "80/TCP,8090/UDP,8000/TCP,7777/SCTP", ""}}}, }, // Test load balancer service with multiple ports. { @@ -903,7 +902,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"service3", "LoadBalancer", "1.4.5.6", "2.3.4.5", "80/TCP,8090/UDP,8000/TCP", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"service3", "LoadBalancer", "1.4.5.6", "2.3.4.5", "80/TCP,8090/UDP,8000/TCP", ""}}}, }, // Long external IP's list gets elided. { @@ -921,7 +920,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"service4", "LoadBalancer", "1.5.6.7", "2.3.4.5,3.4.5...", "80/TCP,8090/UDP,8000/TCP", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"service4", "LoadBalancer", "1.5.6.7", "2.3.4.5,3.4.5...", "80/TCP,8090/UDP,8000/TCP", ""}}}, }, // Generate options: Wide, includes selectors. { @@ -940,7 +939,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"service4", "LoadBalancer", "1.5.6.7", "2.3.4.5,3.4.5.6,5.6.7.8", "80/TCP,8090/UDP,8000/TCP", "", "foo=bar"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"service4", "LoadBalancer", "1.5.6.7", "2.3.4.5,3.4.5.6,5.6.7.8", "80/TCP,8090/UDP,8000/TCP", "", "foo=bar"}}}, }, } @@ -961,7 +960,7 @@ func TestPrintServiceLoadBalancer(t *testing.T) { func TestPrintPod(t *testing.T) { tests := []struct { pod api.Pod - expect []metav1beta1.TableRow + expect []metav1.TableRow }{ { // Test name, num of containers, restarts, container ready status @@ -976,7 +975,7 @@ func TestPrintPod(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", int64(6), ""}}}, }, { // Test container error overwrites pod phase @@ -991,7 +990,7 @@ func TestPrintPod(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test2", "1/2", "ContainerWaitingReason", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test2", "1/2", "ContainerWaitingReason", int64(6), ""}}}, }, { // Test the same as the above but with Terminated state and the first container overwrites the rest @@ -1006,7 +1005,7 @@ func TestPrintPod(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test3", "0/2", "ContainerWaitingReason", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test3", "0/2", "ContainerWaitingReason", int64(6), ""}}}, }, { // Test ready is not enough for reporting running @@ -1021,7 +1020,7 @@ func TestPrintPod(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test4", "1/2", "podPhase", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test4", "1/2", "podPhase", int64(6), ""}}}, }, { // Test ready is not enough for reporting running @@ -1037,7 +1036,7 @@ func TestPrintPod(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test5", "1/2", "podReason", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test5", "1/2", "podReason", int64(6), ""}}}, }, { // Test pod has 2 containers, one is running and the other is completed. @@ -1053,7 +1052,7 @@ func TestPrintPod(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test6", "1/2", "Running", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test6", "1/2", "Running", int64(6), ""}}}, }, } @@ -1077,7 +1076,7 @@ func TestPrintPodwide(t *testing.T) { condition3 := "condition3" tests := []struct { pod api.Pod - expect []metav1beta1.TableRow + expect []metav1.TableRow }{ { // Test when the NodeName and PodIP are not none @@ -1118,7 +1117,7 @@ func TestPrintPodwide(t *testing.T) { NominatedNodeName: "node1", }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", int64(6), "", "1.1.1.1", "test1", "node1", "1/3"}}}, + []metav1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", int64(6), "", "1.1.1.1", "test1", "node1", "1/3"}}}, }, { // Test when the NodeName and PodIP are not none @@ -1159,7 +1158,7 @@ func TestPrintPodwide(t *testing.T) { NominatedNodeName: "node1", }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", int64(6), "", "1.1.1.1", "test1", "node1", "1/3"}}}, + []metav1.TableRow{{Cells: []interface{}{"test1", "1/2", "podPhase", int64(6), "", "1.1.1.1", "test1", "node1", "1/3"}}}, }, { // Test when the NodeName and PodIP are none @@ -1177,7 +1176,7 @@ func TestPrintPodwide(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test2", "1/2", "ContainerWaitingReason", int64(6), "", "", "", "", ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test2", "1/2", "ContainerWaitingReason", int64(6), "", "", "", "", ""}}}, }, } @@ -1231,18 +1230,18 @@ func TestPrintPodConditions(t *testing.T) { } tests := []struct { pod *api.Pod - expect []metav1beta1.TableRow + expect []metav1.TableRow }{ // Should not have TableRowCondition { pod: runningPod, // Columns: Name, Ready, Reason, Restarts, Age - expect: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "1/2", "Running", int64(6), ""}}}, + expect: []metav1.TableRow{{Cells: []interface{}{"test1", "1/2", "Running", int64(6), ""}}}, }, // Should have TableRowCondition: podSuccessConditions { pod: succeededPod, - expect: []metav1beta1.TableRow{ + expect: []metav1.TableRow{ { // Columns: Name, Ready, Reason, Restarts, Age Cells: []interface{}{"test1", "1/2", "Succeeded", int64(6), ""}, @@ -1253,7 +1252,7 @@ func TestPrintPodConditions(t *testing.T) { // Should have TableRowCondition: podFailedCondition { pod: failedPod, - expect: []metav1beta1.TableRow{ + expect: []metav1.TableRow{ { // Columns: Name, Ready, Reason, Restarts, Age Cells: []interface{}{"test2", "1/2", "Failed", int64(6), ""}, @@ -1280,7 +1279,7 @@ func TestPrintPodConditions(t *testing.T) { func TestPrintPodList(t *testing.T) { tests := []struct { pods api.PodList - expect []metav1beta1.TableRow + expect []metav1.TableRow }{ // Test podList's pod: name, num of containers, restarts, container ready status { @@ -1309,7 +1308,7 @@ func TestPrintPodList(t *testing.T) { }, }, }, - []metav1beta1.TableRow{{Cells: []interface{}{"test1", "2/2", "podPhase", int64(6), ""}}, {Cells: []interface{}{"test2", "1/1", "podPhase", int64(1), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test1", "2/2", "podPhase", int64(6), ""}}, {Cells: []interface{}{"test2", "1/1", "podPhase", int64(1), ""}}}, }, } @@ -1331,7 +1330,7 @@ func TestPrintPodList(t *testing.T) { func TestPrintNonTerminatedPod(t *testing.T) { tests := []struct { pod api.Pod - expect []metav1beta1.TableRow + expect []metav1.TableRow }{ { // Test pod phase Running should be printed @@ -1347,7 +1346,7 @@ func TestPrintNonTerminatedPod(t *testing.T) { }, }, // Columns: Name, Ready, Reason, Restarts, Age - []metav1beta1.TableRow{{Cells: []interface{}{"test1", "1/2", "Running", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test1", "1/2", "Running", int64(6), ""}}}, }, { // Test pod phase Pending should be printed @@ -1363,7 +1362,7 @@ func TestPrintNonTerminatedPod(t *testing.T) { }, }, // Columns: Name, Ready, Reason, Restarts, Age - []metav1beta1.TableRow{{Cells: []interface{}{"test2", "1/2", "Pending", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test2", "1/2", "Pending", int64(6), ""}}}, }, { // Test pod phase Unknown should be printed @@ -1379,7 +1378,7 @@ func TestPrintNonTerminatedPod(t *testing.T) { }, }, // Columns: Name, Ready, Reason, Restarts, Age - []metav1beta1.TableRow{{Cells: []interface{}{"test3", "1/2", "Unknown", int64(6), ""}}}, + []metav1.TableRow{{Cells: []interface{}{"test3", "1/2", "Unknown", int64(6), ""}}}, }, { // Test pod phase Succeeded should be printed @@ -1395,7 +1394,7 @@ func TestPrintNonTerminatedPod(t *testing.T) { }, }, // Columns: Name, Ready, Reason, Restarts, Age - []metav1beta1.TableRow{ + []metav1.TableRow{ { Cells: []interface{}{"test4", "1/2", "Succeeded", int64(6), ""}, Conditions: podSuccessConditions, @@ -1416,7 +1415,7 @@ func TestPrintNonTerminatedPod(t *testing.T) { }, }, // Columns: Name, Ready, Reason, Restarts, Age - []metav1beta1.TableRow{ + []metav1.TableRow{ { Cells: []interface{}{"test5", "1/2", "Failed", int64(6), ""}, Conditions: podFailedConditions, @@ -1443,7 +1442,7 @@ func TestPrintPodTemplate(t *testing.T) { tests := []struct { podTemplate api.PodTemplate options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Test basic pod template with no containers. { @@ -1459,7 +1458,7 @@ func TestPrintPodTemplate(t *testing.T) { options: printers.GenerateOptions{}, // Columns: Name, Containers, Images, Pod Labels - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pod-template-1", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pod-template-1", "", "", ""}}}, }, // Test basic pod template with two containers. { @@ -1484,7 +1483,7 @@ func TestPrintPodTemplate(t *testing.T) { options: printers.GenerateOptions{}, // Columns: Name, Containers, Images, Pod Labels - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pod-template-2", "fake-container1,fake-container2", "fake-image1,fake-image2", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pod-template-2", "fake-container1,fake-container2", "fake-image1,fake-image2", ""}}}, }, // Test basic pod template with pod labels { @@ -1503,7 +1502,7 @@ func TestPrintPodTemplate(t *testing.T) { options: printers.GenerateOptions{}, // Columns: Name, Containers, Images, Pod Labels - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pod-template-3", "", "", "foo=bar"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pod-template-3", "", "", "foo=bar"}}}, }, } @@ -1553,7 +1552,7 @@ func TestPrintPodTemplateList(t *testing.T) { } // Columns: Name, Containers, Images, Pod Labels - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"pod-template-1", "", "", "foo=bar"}}, {Cells: []interface{}{"pod-template-2", "", "", "a=b"}}, } @@ -1656,21 +1655,21 @@ func TestPrintDeployment(t *testing.T) { tests := []struct { deployment apps.Deployment options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Test Deployment with no generate options. { deployment: testDeployment, options: printers.GenerateOptions{}, // Columns: Name, ReadyReplicas, UpdatedReplicas, AvailableReplicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "0/5", int64(2), int64(1), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "0/5", int64(2), int64(1), "0s"}}}, }, // Test generate options: Wide. { deployment: testDeployment, options: printers.GenerateOptions{Wide: true}, // Columns: Name, ReadyReplicas, UpdatedReplicas, AvailableReplicas, Age, Containers, Images, Selectors - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "0/5", int64(2), int64(1), "0s", "fake-container1,fake-container2", "fake-image1,fake-image2", "foo=bar"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "0/5", int64(2), int64(1), "0s", "fake-container1,fake-container2", "fake-image1,fake-image2", "foo=bar"}}}, }, } @@ -1724,21 +1723,21 @@ func TestPrintDaemonSet(t *testing.T) { tests := []struct { daemonSet apps.DaemonSet options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Test generate daemon set with no generate options. { daemonSet: testDaemonSet, options: printers.GenerateOptions{}, // Columns: Name, Num Desired, Num Current, Num Ready, Num Updated, Num Available, Selectors, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", int64(3), int64(2), int64(1), int64(2), int64(0), "", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", int64(3), int64(2), int64(1), int64(2), int64(0), "", "0s"}}}, }, // Test generate daemon set with "Wide" generate options. { daemonSet: testDaemonSet, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Num Desired, Num Current, Num Ready, Num Updated, Num Available, Node Selectors, Age, Containers, Images, Labels - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", int64(3), int64(2), int64(1), int64(2), int64(0), "", "0s", "fake-container1,fake-container2", "fake-image1,fake-image2", "foo=bar"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", int64(3), int64(2), int64(1), int64(2), int64(0), "", "0s", "fake-container1,fake-container2", "fake-image1,fake-image2", "foo=bar"}}}, }, } @@ -1810,7 +1809,7 @@ func TestPrintDaemonSetList(t *testing.T) { } // Columns: Name, Num Desired, Num Current, Num Ready, Num Updated, Num Available, Selectors, Age - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"daemonset1", int64(3), int64(2), int64(1), int64(2), int64(0), "", "0s"}}, {Cells: []interface{}{"daemonset2", int64(2), int64(4), int64(9), int64(3), int64(3), "", "0s"}}, } @@ -1833,7 +1832,7 @@ func TestPrintJob(t *testing.T) { tests := []struct { job batch.Job options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { // Generate table rows for Job with no generate options. @@ -1866,7 +1865,7 @@ func TestPrintJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Completions, Duration, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"job1", "1/2", "", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"job1", "1/2", "", "0s"}}}, }, // Generate table rows for Job with generate options "Wide". { @@ -1899,7 +1898,7 @@ func TestPrintJob(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Completions, Duration, Age, Containers, Images, Selectors - expected: []metav1beta1.TableRow{ + expected: []metav1.TableRow{ { Cells: []interface{}{"job1", "1/2", "", "0s", "fake-job-container1,fake-job-container2", "fake-job-image1,fake-job-image2", "job-label=job-label-value"}, }, @@ -1921,7 +1920,7 @@ func TestPrintJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Completions, Duration, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"job2", "0/1", "", "10y"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"job2", "0/1", "", "10y"}}}, }, // Job with duration. { @@ -1941,7 +1940,7 @@ func TestPrintJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Completions, Duration, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"job3", "0/1", "30m", "10y"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"job3", "0/1", "30m", "10y"}}}, }, { job: batch.Job{ @@ -1959,7 +1958,7 @@ func TestPrintJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Completions, Duration, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"job4", "0/1", "20m", "10y"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"job4", "0/1", "20m", "10y"}}}, }, } @@ -2040,7 +2039,7 @@ func TestPrintJobList(t *testing.T) { } // Columns: Name, Completions, Duration, Age - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"job1", "1/2", "", "0s"}}, {Cells: []interface{}{"job2", "2/2", "20m", "0s"}}, } @@ -2067,7 +2066,7 @@ func TestPrintHPA(t *testing.T) { } tests := []struct { hpa autoscaling.HorizontalPodAutoscaler - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // minReplicas unset { @@ -2086,7 +2085,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "", "", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "", "", int64(10), int64(4), ""}}}, }, // external source type, target average value (no current) { @@ -2121,7 +2120,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m (avg)", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m (avg)", "2", int64(10), int64(4), ""}}}, }, // external source type, target average value { @@ -2170,7 +2169,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m (avg)", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m (avg)", "2", int64(10), int64(4), ""}}}, }, // external source type, target value (no current) { @@ -2205,7 +2204,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, }, // external source type, target value { @@ -2253,7 +2252,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, }, // pods source type (no current) { @@ -2287,7 +2286,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, }, // pods source type { @@ -2334,7 +2333,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, }, // object source type (no current) { @@ -2372,7 +2371,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, }, // object source type { @@ -2427,7 +2426,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, }, // resource source type, targetVal (no current) { @@ -2459,7 +2458,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/100m", "2", int64(10), int64(4), ""}}}, }, // resource source type, targetVal { @@ -2502,7 +2501,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m", "2", int64(10), int64(4), ""}}}, }, // resource source type, targetUtil (no current) { @@ -2534,7 +2533,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/80%", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "/80%", "2", int64(10), int64(4), ""}}}, }, // resource source type, targetUtil { @@ -2578,7 +2577,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50%/80%", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50%/80%", "2", int64(10), int64(4), ""}}}, }, // multiple specs { @@ -2657,7 +2656,7 @@ func TestPrintHPA(t *testing.T) { }, }, // Columns: Name, Reference, Targets, MinPods, MaxPods, Replicas, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m, 50%/80% + 1 more...", "2", int64(10), int64(4), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"some-hpa", "ReplicationController/some-rc", "50m/100m, 50%/80% + 1 more...", "2", int64(10), int64(4), ""}}}, }, } @@ -2681,7 +2680,7 @@ func TestPrintService(t *testing.T) { tests := []struct { service api.Service options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { // Test name, cluster ip, port with protocol @@ -2701,7 +2700,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "ClusterIP", "10.9.8.7", "", "2233/tcp", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "ClusterIP", "10.9.8.7", "", "2233/tcp", ""}}}, }, { // Test generate options: Wide includes selectors. @@ -2721,7 +2720,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age, Selector - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "ClusterIP", "10.9.8.7", "", "2233/tcp", "", "foo=bar"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "ClusterIP", "10.9.8.7", "", "2233/tcp", "", "foo=bar"}}}, }, { // Test NodePort service @@ -2741,7 +2740,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test2", "NodePort", "10.9.8.7", "", "8888:9999/tcp", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test2", "NodePort", "10.9.8.7", "", "8888:9999/tcp", ""}}}, }, { // Test LoadBalancer service @@ -2760,7 +2759,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test3", "LoadBalancer", "10.9.8.7", "", "8888/tcp", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test3", "LoadBalancer", "10.9.8.7", "", "8888/tcp", ""}}}, }, { // Test LoadBalancer service with single ExternalIP and no LoadBalancerStatus @@ -2780,7 +2779,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test4", "LoadBalancer", "10.9.8.7", "80.11.12.10", "8888/tcp", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test4", "LoadBalancer", "10.9.8.7", "80.11.12.10", "8888/tcp", ""}}}, }, { // Test LoadBalancer service with single ExternalIP @@ -2810,7 +2809,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test5", "LoadBalancer", "10.9.8.7", "3.4.5.6,80.11.12.10", "8888/tcp", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test5", "LoadBalancer", "10.9.8.7", "3.4.5.6,80.11.12.10", "8888/tcp", ""}}}, }, { // Test LoadBalancer service with mul ExternalIPs @@ -2844,7 +2843,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test6", "LoadBalancer", "10.9.8.7", "2.3.4.5,3.4.5.6,80.11.12.10,80.11.12.11", "8888/tcp", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test6", "LoadBalancer", "10.9.8.7", "2.3.4.5,3.4.5.6,80.11.12.10,80.11.12.11", "8888/tcp", ""}}}, }, { // Test ExternalName service @@ -2857,7 +2856,7 @@ func TestPrintService(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test7", "ExternalName", "", "my.database.example.com", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test7", "ExternalName", "", "my.database.example.com", "", ""}}}, }, } @@ -2908,7 +2907,7 @@ func TestPrintServiceList(t *testing.T) { } // Columns: Name, Type, Cluster-IP, External-IP, Port(s), Age - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"service1", "ClusterIP", "10.9.8.7", "", "2233/tcp", ""}}, {Cells: []interface{}{"service2", "NodePort", "1.2.3.4", "", "5566/udp", ""}}, } @@ -2930,7 +2929,7 @@ func TestPrintPodDisruptionBudget(t *testing.T) { maxUnavailable := intstr.FromInt(11) tests := []struct { pdb policy.PodDisruptionBudget - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Min Available set, no Max Available. { @@ -2948,7 +2947,7 @@ func TestPrintPodDisruptionBudget(t *testing.T) { }, }, // Columns: Name, Min Available, Max Available, Allowed Disruptions, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pdb1", "22", "N/A", int64(5), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pdb1", "22", "N/A", int64(5), "0s"}}}, }, // Max Available set, no Min Available. { @@ -2966,7 +2965,7 @@ func TestPrintPodDisruptionBudget(t *testing.T) { }, }, // Columns: Name, Min Available, Max Available, Allowed Disruptions, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pdb2", "N/A", "11", int64(5), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pdb2", "N/A", "11", int64(5), "0s"}}}, }} for i, test := range tests { @@ -3019,7 +3018,7 @@ func TestPrintPodDisruptionBudgetList(t *testing.T) { } // Columns: Name, Min Available, Max Available, Allowed Disruptions, Age - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"pdb1", "N/A", "11", int64(5), "0s"}}, {Cells: []interface{}{"pdb2", "22", "N/A", int64(3), "0s"}}, } @@ -3039,7 +3038,7 @@ func TestPrintPodDisruptionBudgetList(t *testing.T) { func TestPrintControllerRevision(t *testing.T) { tests := []struct { history apps.ControllerRevision - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { history: apps.ControllerRevision{ @@ -3057,7 +3056,7 @@ func TestPrintControllerRevision(t *testing.T) { }, Revision: 1, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "daemonset.apps/foo", int64(1), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "daemonset.apps/foo", int64(1), "0s"}}}, }, { history: apps.ControllerRevision{ @@ -3074,7 +3073,7 @@ func TestPrintControllerRevision(t *testing.T) { }, Revision: 2, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test2", "", int64(2), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test2", "", int64(2), "0s"}}}, }, { history: apps.ControllerRevision{ @@ -3085,7 +3084,7 @@ func TestPrintControllerRevision(t *testing.T) { }, Revision: 3, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test3", "", int64(3), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test3", "", int64(3), "0s"}}}, }, { history: apps.ControllerRevision{ @@ -3096,7 +3095,7 @@ func TestPrintControllerRevision(t *testing.T) { }, Revision: 4, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test4", "", int64(4), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test4", "", int64(4), "0s"}}}, }, } @@ -3121,7 +3120,7 @@ func boolP(b bool) *bool { func TestPrintConfigMap(t *testing.T) { tests := []struct { configMap api.ConfigMap - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic config map with no data. { @@ -3132,7 +3131,7 @@ func TestPrintConfigMap(t *testing.T) { }, }, // Columns: Name, Data, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"configmap1", int64(0), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"configmap1", int64(0), "0s"}}}, }, // Basic config map with one data entry { @@ -3146,7 +3145,7 @@ func TestPrintConfigMap(t *testing.T) { }, }, // Columns: Name, (Num) Data, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"configmap2", int64(1), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"configmap2", int64(1), "0s"}}}, }, // Basic config map with one data and one binary data entry. { @@ -3163,7 +3162,7 @@ func TestPrintConfigMap(t *testing.T) { }, }, // Columns: Name, (Num) Data, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"configmap3", int64(2), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"configmap3", int64(2), "0s"}}}, }, } @@ -3184,7 +3183,7 @@ func TestPrintConfigMap(t *testing.T) { func TestPrintNetworkPolicy(t *testing.T) { tests := []struct { policy networking.NetworkPolicy - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic network policy with empty spec. { @@ -3196,7 +3195,7 @@ func TestPrintNetworkPolicy(t *testing.T) { Spec: networking.NetworkPolicySpec{}, }, // Columns: Name, Pod-Selector, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"policy1", "", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"policy1", "", "0s"}}}, }, // Basic network policy with pod selector. { @@ -3210,7 +3209,7 @@ func TestPrintNetworkPolicy(t *testing.T) { }, }, // Columns: Name, Pod-Selector, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"policy2", "foo=bar", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"policy2", "foo=bar", "0s"}}}, }, } @@ -3232,7 +3231,7 @@ func TestPrintRoleBinding(t *testing.T) { tests := []struct { binding rbac.RoleBinding options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic role binding { @@ -3254,7 +3253,7 @@ func TestPrintRoleBinding(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"binding1", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"binding1", "0s"}}}, }, // Generate options=Wide; print subject and roles. { @@ -3285,7 +3284,7 @@ func TestPrintRoleBinding(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Age, Role, Users, Groups, ServiceAccounts - expected: []metav1beta1.TableRow{{Cells: []interface{}{"binding2", "0s", "Role/role-name", "user-name", "group-name", "service-account-namespace/service-account-name"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"binding2", "0s", "Role/role-name", "user-name", "group-name", "service-account-namespace/service-account-name"}}}, }, } @@ -3307,7 +3306,7 @@ func TestPrintClusterRoleBinding(t *testing.T) { tests := []struct { binding rbac.ClusterRoleBinding options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic cluster role binding { @@ -3329,7 +3328,7 @@ func TestPrintClusterRoleBinding(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"binding1", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"binding1", "0s"}}}, }, // Generate options=Wide; print subject and roles. { @@ -3360,7 +3359,7 @@ func TestPrintClusterRoleBinding(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Age, Role, Users, Groups, ServiceAccounts - expected: []metav1beta1.TableRow{{Cells: []interface{}{"binding2", "0s", "Role/role-name", "user-name", "group-name", "service-account-namespace/service-account-name"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"binding2", "0s", "Role/role-name", "user-name", "group-name", "service-account-namespace/service-account-name"}}}, }, } @@ -3380,7 +3379,7 @@ func TestPrintClusterRoleBinding(t *testing.T) { func TestPrintCertificateSigningRequest(t *testing.T) { tests := []struct { csr certificates.CertificateSigningRequest - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic CSR with no spec or status; defaults to status: Pending. { @@ -3393,7 +3392,7 @@ func TestPrintCertificateSigningRequest(t *testing.T) { Status: certificates.CertificateSigningRequestStatus{}, }, // Columns: Name, Age, Requestor, Condition - expected: []metav1beta1.TableRow{{Cells: []interface{}{"csr1", "0s", "", "Pending"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"csr1", "0s", "", "Pending"}}}, }, // Basic CSR with Spec and Status=Approved. { @@ -3414,7 +3413,7 @@ func TestPrintCertificateSigningRequest(t *testing.T) { }, }, // Columns: Name, Age, Requestor, Condition - expected: []metav1beta1.TableRow{{Cells: []interface{}{"csr2", "0s", "CSR Requestor", "Approved"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"csr2", "0s", "CSR Requestor", "Approved"}}}, }, // Basic CSR with Spec and Status=Approved; certificate issued. { @@ -3436,7 +3435,7 @@ func TestPrintCertificateSigningRequest(t *testing.T) { }, }, // Columns: Name, Age, Requestor, Condition - expected: []metav1beta1.TableRow{{Cells: []interface{}{"csr2", "0s", "CSR Requestor", "Approved,Issued"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"csr2", "0s", "CSR Requestor", "Approved,Issued"}}}, }, // Basic CSR with Spec and Status=Denied. { @@ -3457,7 +3456,7 @@ func TestPrintCertificateSigningRequest(t *testing.T) { }, }, // Columns: Name, Age, Requestor, Condition - expected: []metav1beta1.TableRow{{Cells: []interface{}{"csr3", "0s", "CSR Requestor", "Denied"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"csr3", "0s", "CSR Requestor", "Denied"}}}, }, } @@ -3479,7 +3478,7 @@ func TestPrintReplicationController(t *testing.T) { tests := []struct { rc api.ReplicationController options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic print replication controller without replicas or status. { @@ -3511,7 +3510,7 @@ func TestPrintReplicationController(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Desired, Current, Ready, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"rc1", int64(0), int64(0), int64(0), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"rc1", int64(0), int64(0), int64(0), ""}}}, }, // Basic print replication controller with replicas; does not print containers or labels { @@ -3548,7 +3547,7 @@ func TestPrintReplicationController(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Desired, Current, Ready, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"rc1", int64(5), int64(3), int64(1), ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"rc1", int64(5), int64(3), int64(1), ""}}}, }, // Generate options: Wide; print containers and labels. { @@ -3584,7 +3583,7 @@ func TestPrintReplicationController(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Desired, Current, Ready, Age, Containers, Images, Selector - expected: []metav1beta1.TableRow{{Cells: []interface{}{"rc1", int64(5), int64(3), int64(1), "", "test", "test_image", "a=b"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"rc1", int64(5), int64(3), int64(1), "", "test", "test_image", "a=b"}}}, }, } @@ -3606,7 +3605,7 @@ func TestPrintReplicaSet(t *testing.T) { tests := []struct { replicaSet apps.ReplicaSet options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Generate options empty { @@ -3640,7 +3639,7 @@ func TestPrintReplicaSet(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Desired, Current, Ready, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", int64(5), int64(5), int64(2), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", int64(5), int64(5), int64(2), "0s"}}}, }, // Generate options "Wide" { @@ -3674,7 +3673,7 @@ func TestPrintReplicaSet(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Desired, Current, Ready, Age, Containers, Images, Selector - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", int64(5), int64(5), int64(2), "0s", "fake-container1,fake-container2", "fake-image1,fake-image2", "foo=bar"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", int64(5), int64(5), int64(2), "0s", "fake-container1,fake-container2", "fake-image1,fake-image2", "foo=bar"}}}, }, } @@ -3742,7 +3741,7 @@ func TestPrintReplicaSetList(t *testing.T) { } // Columns: Name, Desired, Current, Ready, Age - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"replicaset1", int64(5), int64(5), int64(2), "0s"}}, {Cells: []interface{}{"replicaset2", int64(4), int64(3), int64(1), "0s"}}, } @@ -3763,7 +3762,7 @@ func TestPrintStatefulSet(t *testing.T) { tests := []struct { statefulSet apps.StatefulSet options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic stateful set; no generate options. { @@ -3796,7 +3795,7 @@ func TestPrintStatefulSet(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Ready, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "2/5", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "2/5", "0s"}}}, }, // Generate options "Wide"; includes containers and images. { @@ -3829,7 +3828,7 @@ func TestPrintStatefulSet(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Ready, Age, Containers, Images - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "2/5", "0s", "fake-container1,fake-container2", "fake-image1,fake-image2"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "2/5", "0s", "fake-container1,fake-container2", "fake-image1,fake-image2"}}}, }, } @@ -3856,7 +3855,7 @@ func TestPrintPersistentVolume(t *testing.T) { } tests := []struct { pv api.PersistentVolume - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { // Test bound @@ -3875,7 +3874,7 @@ func TestPrintPersistentVolume(t *testing.T) { Phase: api.VolumeBound, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "4Gi", "ROX", "", "Bound", "default/test", "", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "4Gi", "ROX", "", "Bound", "default/test", "", "", "", ""}}}, }, { // Test failed @@ -3894,7 +3893,7 @@ func TestPrintPersistentVolume(t *testing.T) { Phase: api.VolumeFailed, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test2", "4Gi", "ROX", "", "Failed", "default/test", "", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test2", "4Gi", "ROX", "", "Failed", "default/test", "", "", "", ""}}}, }, { // Test pending @@ -3913,7 +3912,7 @@ func TestPrintPersistentVolume(t *testing.T) { Phase: api.VolumePending, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test3", "10Gi", "RWX", "", "Pending", "default/test", "", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test3", "10Gi", "RWX", "", "Pending", "default/test", "", "", "", ""}}}, }, { // Test pending, storageClass @@ -3933,7 +3932,7 @@ func TestPrintPersistentVolume(t *testing.T) { Phase: api.VolumePending, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test4", "10Gi", "RWO", "", "Pending", "default/test", "my-scn", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test4", "10Gi", "RWO", "", "Pending", "default/test", "my-scn", "", "", ""}}}, }, { // Test available @@ -3953,7 +3952,7 @@ func TestPrintPersistentVolume(t *testing.T) { Phase: api.VolumeAvailable, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test5", "10Gi", "RWO", "", "Available", "default/test", "my-scn", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test5", "10Gi", "RWO", "", "Available", "default/test", "my-scn", "", "", ""}}}, }, { // Test released @@ -3973,7 +3972,7 @@ func TestPrintPersistentVolume(t *testing.T) { Phase: api.VolumeReleased, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test6", "10Gi", "RWO", "", "Released", "default/test", "my-scn", "", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test6", "10Gi", "RWO", "", "Released", "default/test", "my-scn", "", "", ""}}}, }, } @@ -3996,7 +3995,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { myScn := "my-scn" tests := []struct { pvc api.PersistentVolumeClaim - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { // Test name, num of containers, restarts, container ready status @@ -4016,7 +4015,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { }, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test1", "Bound", "my-volume", "4Gi", "ROX", "", "", "Filesystem"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test1", "Bound", "my-volume", "4Gi", "ROX", "", "", "Filesystem"}}}, }, { // Test name, num of containers, restarts, container ready status @@ -4035,7 +4034,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { }, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test2", "Lost", "", "", "", "", "", "Filesystem"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test2", "Lost", "", "", "", "", "", "Filesystem"}}}, }, { // Test name, num of containers, restarts, container ready status @@ -4055,7 +4054,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { }, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test3", "Pending", "my-volume", "10Gi", "RWX", "", "", "Filesystem"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test3", "Pending", "my-volume", "10Gi", "RWX", "", "", "Filesystem"}}}, }, { // Test name, num of containers, restarts, container ready status @@ -4076,7 +4075,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { }, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test4", "Pending", "my-volume", "10Gi", "RWO", "my-scn", "", "Filesystem"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test4", "Pending", "my-volume", "10Gi", "RWO", "my-scn", "", "Filesystem"}}}, }, { // Test name, num of containers, restarts, container ready status @@ -4096,7 +4095,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { }, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"test5", "Pending", "my-volume", "10Gi", "RWO", "my-scn", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"test5", "Pending", "my-volume", "10Gi", "RWO", "my-scn", "", ""}}}, }, } @@ -4117,7 +4116,7 @@ func TestPrintPersistentVolumeClaim(t *testing.T) { func TestPrintComponentStatus(t *testing.T) { tests := []struct { componentStatus api.ComponentStatus - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic component status without conditions { @@ -4128,7 +4127,7 @@ func TestPrintComponentStatus(t *testing.T) { Conditions: []api.ComponentCondition{}, }, // Columns: Name, Status, Message, Error - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cs1", "Unknown", "", ""}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cs1", "Unknown", "", ""}}}, }, // Basic component status with healthy condition. { @@ -4146,7 +4145,7 @@ func TestPrintComponentStatus(t *testing.T) { }, }, // Columns: Name, Status, Message, Error - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cs2", "Healthy", "test message", "test error"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cs2", "Healthy", "test message", "test error"}}}, }, // Basic component status with healthy condition. { @@ -4164,7 +4163,7 @@ func TestPrintComponentStatus(t *testing.T) { }, }, // Columns: Name, Status, Message, Error - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cs3", "Unhealthy", "test message", "test error"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cs3", "Unhealthy", "test message", "test error"}}}, }, } @@ -4188,7 +4187,7 @@ func TestPrintCronJob(t *testing.T) { tests := []struct { cronjob batch.CronJob options printers.GenerateOptions - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic cron job; does not print containers, images, or labels. { @@ -4227,7 +4226,7 @@ func TestPrintCronJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Schedule, Suspend, Active, Last Schedule, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cronjob1", "0/5 * * * ?", "False", int64(0), "0s", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cronjob1", "0/5 * * * ?", "False", int64(0), "0s", "0s"}}}, }, // Generate options: Wide; prints containers, images, and labels. { @@ -4266,7 +4265,7 @@ func TestPrintCronJob(t *testing.T) { }, options: printers.GenerateOptions{Wide: true}, // Columns: Name, Schedule, Suspend, Active, Last Schedule, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cronjob1", "0/5 * * * ?", "False", int64(0), "0s", "0s", "fake-job-container1,fake-job-container2", "fake-job-image1,fake-job-image2", "a=b"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cronjob1", "0/5 * * * ?", "False", int64(0), "0s", "0s", "fake-job-container1,fake-job-container2", "fake-job-image1,fake-job-image2", "a=b"}}}, }, // CronJob with Last Schedule and Age { @@ -4285,7 +4284,7 @@ func TestPrintCronJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Schedule, Suspend, Active, Last Schedule, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cronjob2", "0/5 * * * ?", "False", int64(0), "30s", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cronjob2", "0/5 * * * ?", "False", int64(0), "30s", "5m"}}}, }, // CronJob without Last Schedule { @@ -4302,7 +4301,7 @@ func TestPrintCronJob(t *testing.T) { }, options: printers.GenerateOptions{}, // Columns: Name, Schedule, Suspend, Active, Last Schedule, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"cronjob3", "0/5 * * * ?", "False", int64(0), "", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"cronjob3", "0/5 * * * ?", "False", int64(0), "", "5m"}}}, }, } @@ -4368,7 +4367,7 @@ func TestPrintCronJobList(t *testing.T) { } // Columns: Name, Schedule, Suspend, Active, Last Schedule, Age - expectedRows := []metav1beta1.TableRow{ + expectedRows := []metav1.TableRow{ {Cells: []interface{}{"cronjob1", "0/5 * * * ?", "False", int64(0), "0s", "0s"}}, {Cells: []interface{}{"cronjob2", "4/5 1 1 1 ?", "False", int64(0), "20m", "0s"}}, } @@ -4392,7 +4391,7 @@ func TestPrintStorageClass(t *testing.T) { bindModeWait := storage.VolumeBindingWaitForFirstConsumer tests := []struct { sc storage.StorageClass - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { sc: storage.StorageClass{ @@ -4402,7 +4401,7 @@ func TestPrintStorageClass(t *testing.T) { }, Provisioner: "kubernetes.io/glusterfs", }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc1", "kubernetes.io/glusterfs", "Delete", + expected: []metav1.TableRow{{Cells: []interface{}{"sc1", "kubernetes.io/glusterfs", "Delete", "Immediate", false, "0s"}}}, }, { @@ -4413,7 +4412,7 @@ func TestPrintStorageClass(t *testing.T) { }, Provisioner: "kubernetes.io/nfs", }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc2", "kubernetes.io/nfs", "Delete", + expected: []metav1.TableRow{{Cells: []interface{}{"sc2", "kubernetes.io/nfs", "Delete", "Immediate", false, "5m"}}}, }, { @@ -4425,7 +4424,7 @@ func TestPrintStorageClass(t *testing.T) { Provisioner: "kubernetes.io/nfs", ReclaimPolicy: &policyDelte, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc3", "kubernetes.io/nfs", "Delete", + expected: []metav1.TableRow{{Cells: []interface{}{"sc3", "kubernetes.io/nfs", "Delete", "Immediate", false, "5m"}}}, }, { @@ -4438,7 +4437,7 @@ func TestPrintStorageClass(t *testing.T) { ReclaimPolicy: &policyRetain, VolumeBindingMode: &bindModeImmediate, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc4", "kubernetes.io/nfs", "Retain", + expected: []metav1.TableRow{{Cells: []interface{}{"sc4", "kubernetes.io/nfs", "Retain", "Immediate", false, "5m"}}}, }, { @@ -4451,7 +4450,7 @@ func TestPrintStorageClass(t *testing.T) { ReclaimPolicy: &policyRetain, VolumeBindingMode: &bindModeWait, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc5", "kubernetes.io/nfs", "Retain", + expected: []metav1.TableRow{{Cells: []interface{}{"sc5", "kubernetes.io/nfs", "Retain", "WaitForFirstConsumer", false, "5m"}}}, }, { @@ -4465,7 +4464,7 @@ func TestPrintStorageClass(t *testing.T) { AllowVolumeExpansion: boolP(true), VolumeBindingMode: &bindModeWait, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc6", "kubernetes.io/nfs", "Retain", + expected: []metav1.TableRow{{Cells: []interface{}{"sc6", "kubernetes.io/nfs", "Retain", "WaitForFirstConsumer", true, "5m"}}}, }, } @@ -4489,7 +4488,7 @@ func TestPrintLease(t *testing.T) { holder2 := "holder2" tests := []struct { lease coordination.Lease - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { lease: coordination.Lease{ @@ -4501,7 +4500,7 @@ func TestPrintLease(t *testing.T) { HolderIdentity: &holder1, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"lease1", "holder1", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"lease1", "holder1", "0s"}}}, }, { lease: coordination.Lease{ @@ -4513,7 +4512,7 @@ func TestPrintLease(t *testing.T) { HolderIdentity: &holder2, }, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"lease2", "holder2", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"lease2", "holder2", "5m"}}}, }, } @@ -4534,7 +4533,7 @@ func TestPrintLease(t *testing.T) { func TestPrintPriorityClass(t *testing.T) { tests := []struct { pc scheduling.PriorityClass - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { pc: scheduling.PriorityClass{ @@ -4544,7 +4543,7 @@ func TestPrintPriorityClass(t *testing.T) { }, Value: 1, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pc1", int64(1), bool(false), "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pc1", int64(1), bool(false), "0s"}}}, }, { pc: scheduling.PriorityClass{ @@ -4555,7 +4554,7 @@ func TestPrintPriorityClass(t *testing.T) { Value: 1000000000, GlobalDefault: true, }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"pc2", int64(1000000000), bool(true), "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"pc2", int64(1000000000), bool(true), "5m"}}}, }, } @@ -4576,7 +4575,7 @@ func TestPrintPriorityClass(t *testing.T) { func TestPrintRuntimeClass(t *testing.T) { tests := []struct { rc nodeapi.RuntimeClass - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { rc: nodeapi.RuntimeClass{ @@ -4586,7 +4585,7 @@ func TestPrintRuntimeClass(t *testing.T) { }, Handler: "h1", }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"rc1", "h1", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"rc1", "h1", "0s"}}}, }, { rc: nodeapi.RuntimeClass{ @@ -4596,7 +4595,7 @@ func TestPrintRuntimeClass(t *testing.T) { }, Handler: "h2", }, - expected: []metav1beta1.TableRow{{Cells: []interface{}{"rc2", "h2", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"rc2", "h2", "5m"}}}, }, } @@ -4618,7 +4617,7 @@ func TestPrintEndpoint(t *testing.T) { tests := []struct { endpoint api.Endpoints - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ // Basic endpoint with no IP's { @@ -4629,7 +4628,7 @@ func TestPrintEndpoint(t *testing.T) { }, }, // Columns: Name, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"endpoint1", "", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"endpoint1", "", "0s"}}}, }, // Endpoint with no ports { @@ -4652,7 +4651,7 @@ func TestPrintEndpoint(t *testing.T) { }, }, // Columns: Name, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"endpoint3", "1.2.3.4,5.6.7.8", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"endpoint3", "1.2.3.4,5.6.7.8", "5m"}}}, }, // Basic endpoint with two IP's and one port { @@ -4681,7 +4680,7 @@ func TestPrintEndpoint(t *testing.T) { }, }, // Columns: Name, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"endpoint2", "1.2.3.4:8001,5.6.7.8:8001", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"endpoint2", "1.2.3.4:8001,5.6.7.8:8001", "0s"}}}, }, // Basic endpoint with greater than three IP's triggering "more" string { @@ -4716,7 +4715,7 @@ func TestPrintEndpoint(t *testing.T) { }, }, // Columns: Name, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"endpoint2", "1.2.3.4:8001,5.6.7.8:8001,9.8.7.6:8001 + 1 more...", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"endpoint2", "1.2.3.4:8001,5.6.7.8:8001,9.8.7.6:8001 + 1 more...", "0s"}}}, }, } @@ -4740,7 +4739,7 @@ func TestPrintEndpointSlice(t *testing.T) { tests := []struct { endpointSlice discovery.EndpointSlice - expected []metav1beta1.TableRow + expected []metav1.TableRow }{ { endpointSlice: discovery.EndpointSlice{ @@ -4759,7 +4758,7 @@ func TestPrintEndpointSlice(t *testing.T) { }}, }, // Columns: Name, AddressType, Ports, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"abcslice.123", "IPv4", "80", "10.1.2.3,2001:db8::1234:5678", "0s"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"abcslice.123", "IPv4", "80", "10.1.2.3,2001:db8::1234:5678", "0s"}}}, }, { endpointSlice: discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ @@ -4783,7 +4782,7 @@ func TestPrintEndpointSlice(t *testing.T) { }}, }, // Columns: Name, AddressType, Ports, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"longerslicename.123", "IPv6", "80,443", "10.1.2.3,2001:db8::1234:5678,10.2.3.4 + 1 more...", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"longerslicename.123", "IPv6", "80,443", "10.1.2.3,2001:db8::1234:5678,10.2.3.4 + 1 more...", "5m"}}}, }, { endpointSlice: discovery.EndpointSlice{ ObjectMeta: metav1.ObjectMeta{ @@ -4815,7 +4814,7 @@ func TestPrintEndpointSlice(t *testing.T) { }}, }, // Columns: Name, AddressType, Ports, Endpoints, Age - expected: []metav1beta1.TableRow{{Cells: []interface{}{"multiportslice.123", "IPv4", "80,443,3000 + 1 more...", "10.1.2.3,2001:db8::1234:5678,10.2.3.4 + 1 more...", "5m"}}}, + expected: []metav1.TableRow{{Cells: []interface{}{"multiportslice.123", "IPv4", "80,443,3000 + 1 more...", "10.1.2.3,2001:db8::1234:5678,10.2.3.4 + 1 more...", "5m"}}}, }, } diff --git a/pkg/printers/storage/BUILD b/pkg/printers/storage/BUILD index 36895ecea72..a4bdb03a734 100644 --- a/pkg/printers/storage/BUILD +++ b/pkg/printers/storage/BUILD @@ -11,7 +11,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/printers/storage", deps = [ "//pkg/printers:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", ], ) diff --git a/pkg/printers/storage/storage.go b/pkg/printers/storage/storage.go index 2b9591bc677..57c0865cdc7 100644 --- a/pkg/printers/storage/storage.go +++ b/pkg/printers/storage/storage.go @@ -20,22 +20,22 @@ import ( "context" "fmt" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/kubernetes/pkg/printers" ) -// TableConvertor struct - converts objects to metav1beta1.Table using printers.TableGenerator +// TableConvertor struct - converts objects to metav1.Table using printers.TableGenerator type TableConvertor struct { printers.TableGenerator } -// ConvertToTable method - converts objects to metav1beta1.Table objects using TableGenerator -func (c TableConvertor) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { +// ConvertToTable method - converts objects to metav1.Table objects using TableGenerator +func (c TableConvertor) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { noHeaders := false if tableOptions != nil { switch t := tableOptions.(type) { - case *metav1beta1.TableOptions: + case *metav1.TableOptions: if t != nil { noHeaders = t.NoHeaders } diff --git a/pkg/printers/tablegenerator.go b/pkg/printers/tablegenerator.go index add7c3896e3..26bf9052d1c 100644 --- a/pkg/printers/tablegenerator.go +++ b/pkg/printers/tablegenerator.go @@ -22,7 +22,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) @@ -33,18 +32,18 @@ type GenerateOptions struct { Wide bool } -// TableGenerator - an interface for generating metav1beta1.Table provided a runtime.Object +// TableGenerator - an interface for generating metav1.Table provided a runtime.Object type TableGenerator interface { - GenerateTable(obj runtime.Object, options GenerateOptions) (*metav1beta1.Table, error) + GenerateTable(obj runtime.Object, options GenerateOptions) (*metav1.Table, error) } -// PrintHandler - interface to handle printing provided an array of metav1beta1.TableColumnDefinition +// PrintHandler - interface to handle printing provided an array of metav1.TableColumnDefinition type PrintHandler interface { - TableHandler(columns []metav1beta1.TableColumnDefinition, printFunc interface{}) error + TableHandler(columns []metav1.TableColumnDefinition, printFunc interface{}) error } type handlerEntry struct { - columnDefinitions []metav1beta1.TableColumnDefinition + columnDefinitions []metav1.TableColumnDefinition printFunc reflect.Value args []reflect.Value } @@ -77,7 +76,7 @@ func (h *HumanReadableGenerator) With(fns ...func(PrintHandler)) *HumanReadableG // GenerateTable returns a table for the provided object, using the printer registered for that type. It returns // a table that includes all of the information requested by options, but will not remove rows or columns. The // caller is responsible for applying rules related to filtering rows or columns. -func (h *HumanReadableGenerator) GenerateTable(obj runtime.Object, options GenerateOptions) (*metav1beta1.Table, error) { +func (h *HumanReadableGenerator) GenerateTable(obj runtime.Object, options GenerateOptions) (*metav1.Table, error) { t := reflect.TypeOf(obj) handler, ok := h.handlerMap[t] if !ok { @@ -90,11 +89,11 @@ func (h *HumanReadableGenerator) GenerateTable(obj runtime.Object, options Gener return nil, results[1].Interface().(error) } - var columns []metav1beta1.TableColumnDefinition + var columns []metav1.TableColumnDefinition if !options.NoHeaders { columns = handler.columnDefinitions if !options.Wide { - columns = make([]metav1beta1.TableColumnDefinition, 0, len(handler.columnDefinitions)) + columns = make([]metav1.TableColumnDefinition, 0, len(handler.columnDefinitions)) for i := range handler.columnDefinitions { if handler.columnDefinitions[i].Priority != 0 { continue @@ -103,12 +102,12 @@ func (h *HumanReadableGenerator) GenerateTable(obj runtime.Object, options Gener } } } - table := &metav1beta1.Table{ + table := &metav1.Table{ ListMeta: metav1.ListMeta{ ResourceVersion: "", }, ColumnDefinitions: columns, - Rows: results[0].Interface().([]metav1beta1.TableRow), + Rows: results[0].Interface().([]metav1.TableRow), } if m, err := meta.ListAccessor(obj); err == nil { table.ResourceVersion = m.GetResourceVersion() @@ -126,7 +125,7 @@ func (h *HumanReadableGenerator) GenerateTable(obj runtime.Object, options Gener // TableHandler adds a print handler with a given set of columns to HumanReadableGenerator instance. // See ValidateRowPrintHandlerFunc for required method signature. -func (h *HumanReadableGenerator) TableHandler(columnDefinitions []metav1beta1.TableColumnDefinition, printFunc interface{}) error { +func (h *HumanReadableGenerator) TableHandler(columnDefinitions []metav1.TableColumnDefinition, printFunc interface{}) error { printFuncValue := reflect.ValueOf(printFunc) if err := ValidateRowPrintHandlerFunc(printFuncValue); err != nil { utilruntime.HandleError(fmt.Errorf("unable to register print function: %v", err)) @@ -150,7 +149,7 @@ func (h *HumanReadableGenerator) TableHandler(columnDefinitions []metav1beta1.Ta // ValidateRowPrintHandlerFunc validates print handler signature. // printFunc is the function that will be called to print an object. // It must be of the following type: -// func printFunc(object ObjectType, options GenerateOptions) ([]metav1beta1.TableRow, error) +// func printFunc(object ObjectType, options GenerateOptions) ([]metav1.TableRow, error) // where ObjectType is the type of the object that will be printed, and the first // return value is an array of rows, with each row containing a number of cells that // match the number of columns defined for that printer function. @@ -164,10 +163,10 @@ func ValidateRowPrintHandlerFunc(printFunc reflect.Value) error { "Must accept 2 parameters and return 2 value.") } if funcType.In(1) != reflect.TypeOf((*GenerateOptions)(nil)).Elem() || - funcType.Out(0) != reflect.TypeOf((*[]metav1beta1.TableRow)(nil)).Elem() || + funcType.Out(0) != reflect.TypeOf((*[]metav1.TableRow)(nil)).Elem() || funcType.Out(1) != reflect.TypeOf((*error)(nil)).Elem() { return fmt.Errorf("invalid print handler. The expected signature is: "+ - "func handler(obj %v, options GenerateOptions) ([]metav1beta1.TableRow, error)", funcType.In(0)) + "func handler(obj %v, options GenerateOptions) ([]metav1.TableRow, error)", funcType.In(0)) } return nil } diff --git a/pkg/registry/core/namespace/storage/BUILD b/pkg/registry/core/namespace/storage/BUILD index 3857a221c0a..814fb71f851 100644 --- a/pkg/registry/core/namespace/storage/BUILD +++ b/pkg/registry/core/namespace/storage/BUILD @@ -39,7 +39,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", diff --git a/pkg/registry/core/namespace/storage/storage.go b/pkg/registry/core/namespace/storage/storage.go index ac75a9d5dec..28aba7778c7 100644 --- a/pkg/registry/core/namespace/storage/storage.go +++ b/pkg/registry/core/namespace/storage/storage.go @@ -23,7 +23,6 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/registry/generic" @@ -273,7 +272,7 @@ func shouldHaveDeleteDependentsFinalizer(options *metav1.DeleteOptions, haveDele return haveDeleteDependentsFinalizer } -func (e *REST) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { +func (e *REST) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { return e.store.ConvertToTable(ctx, object, tableOptions) } diff --git a/pkg/registry/core/pod/storage/BUILD b/pkg/registry/core/pod/storage/BUILD index 419a6cd6040..68c00fcc90e 100644 --- a/pkg/registry/core/pod/storage/BUILD +++ b/pkg/registry/core/pod/storage/BUILD @@ -24,7 +24,6 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/registry/core/pod/storage/storage_test.go b/pkg/registry/core/pod/storage/storage_test.go index b511720ebe1..f2352a275e7 100644 --- a/pkg/registry/core/pod/storage/storage_test.go +++ b/pkg/registry/core/pod/storage/storage_test.go @@ -22,11 +22,10 @@ import ( "testing" "time" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -430,7 +429,7 @@ func TestConvertToTableList(t *testing.T) { defer storage.Store.DestroyFunc() ctx := genericapirequest.NewDefaultContext() - columns := []metav1beta1.TableColumnDefinition{ + columns := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Ready", Type: "string", Description: "The aggregate readiness state of this pod for accepting traffic."}, {Name: "Status", Type: "string", Description: "The aggregate status of the containers in this pod."}, @@ -522,7 +521,7 @@ func TestConvertToTableList(t *testing.T) { testCases := []struct { in runtime.Object - out *metav1beta1.Table + out *metav1.Table err bool }{ { @@ -531,31 +530,31 @@ func TestConvertToTableList(t *testing.T) { }, { in: &api.Pod{}, - out: &metav1beta1.Table{ + out: &metav1.Table{ ColumnDefinitions: columns, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"", "0/0", "", int64(0), "", "", "", "", ""}, Object: runtime.RawExtension{Object: &api.Pod{}}}, }, }, }, { in: pod1, - out: &metav1beta1.Table{ + out: &metav1.Table{ ColumnDefinitions: columns, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo", "1/2", "Pending", int64(10), "370d", "10.1.2.3", "test-node", "nominated-node", "1/2"}, Object: runtime.RawExtension{Object: pod1}}, }, }, }, { in: &api.PodList{}, - out: &metav1beta1.Table{ColumnDefinitions: columns}, + out: &metav1.Table{ColumnDefinitions: columns}, }, { in: multiIPsPod, - out: &metav1beta1.Table{ + out: &metav1.Table{ ColumnDefinitions: columns, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo", "1/2", "Pending", int64(10), "370d", "10.1.2.3", "test-node", "nominated-node", "1/2"}, Object: runtime.RawExtension{Object: multiIPsPod}}, }, }, diff --git a/pkg/registry/core/service/storage/BUILD b/pkg/registry/core/service/storage/BUILD index e4902e6da50..1ab55ed553c 100644 --- a/pkg/registry/core/service/storage/BUILD +++ b/pkg/registry/core/service/storage/BUILD @@ -26,7 +26,6 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -67,7 +66,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/pkg/registry/core/service/storage/rest.go b/pkg/registry/core/service/storage/rest.go index c45af066f15..09e90487064 100644 --- a/pkg/registry/core/service/storage/rest.go +++ b/pkg/registry/core/service/storage/rest.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" utilnet "k8s.io/apimachinery/pkg/util/net" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -81,7 +80,6 @@ type ServiceStorage interface { rest.CreaterUpdater rest.GracefulDeleter rest.Watcher - rest.TableConvertor rest.Exporter rest.StorageVersionProvider } @@ -550,7 +548,7 @@ func (rs *REST) ResourceLocation(ctx context.Context, id string) (*url.URL, http return nil, nil, errors.NewServiceUnavailable(fmt.Sprintf("no endpoints available for service %q", id)) } -func (r *REST) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { +func (r *REST) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { return r.services.ConvertToTable(ctx, object, tableOptions) } diff --git a/pkg/registry/core/service/storage/rest_test.go b/pkg/registry/core/service/storage/rest_test.go index a1b6bfadf8b..b06ca5d1816 100644 --- a/pkg/registry/core/service/storage/rest_test.go +++ b/pkg/registry/core/service/storage/rest_test.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" utilnet "k8s.io/apimachinery/pkg/util/net" @@ -155,7 +154,7 @@ func (s *serviceStorage) Watch(ctx context.Context, options *metainternalversion panic("not implemented") } -func (s *serviceStorage) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { +func (s *serviceStorage) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { panic("not implemented") } diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD index ec49d0dc1ba..d9f2e8441ef 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD @@ -80,7 +80,6 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd_test.go index 132b486d6eb..347e8fed8c9 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd_test.go @@ -30,7 +30,6 @@ import ( metainternal "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/diff" @@ -266,7 +265,7 @@ func TestColumns(t *testing.T) { t.Fatalf("unexpected error: %v", err) } - tbl, err := storage.CustomResource.ConvertToTable(ctx, gottenList, &metav1beta1.TableOptions{}) + tbl, err := storage.CustomResource.ConvertToTable(ctx, gottenList, &metav1.TableOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/BUILD index dd46546d2f9..aba49902b83 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/BUILD @@ -11,7 +11,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/meta/table:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_library", "//staging/src/k8s.io/client-go/util/jsonpath:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor.go index 7e0d64e7abf..5b3a8e866d2 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor.go @@ -27,7 +27,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metatable "k8s.io/apimachinery/pkg/api/meta/table" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/client-go/util/jsonpath" @@ -38,7 +37,7 @@ var swaggerMetadataDescriptions = metav1.ObjectMeta{}.SwaggerDoc() // New creates a new table convertor for the provided CRD column definition. If the printer definition cannot be parsed, // error will be returned along with a default table convertor. func New(crdColumns []apiextensions.CustomResourceColumnDefinition) (rest.TableConvertor, error) { - headers := []metav1beta1.TableColumnDefinition{ + headers := []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: swaggerMetadataDescriptions["name"]}, } c := &convertor{ @@ -58,7 +57,7 @@ func New(crdColumns []apiextensions.CustomResourceColumnDefinition) (rest.TableC } c.additionalColumns = append(c.additionalColumns, path) - c.headers = append(c.headers, metav1beta1.TableColumnDefinition{ + c.headers = append(c.headers, metav1.TableColumnDefinition{ Name: col.Name, Type: col.Type, Format: col.Format, @@ -71,13 +70,13 @@ func New(crdColumns []apiextensions.CustomResourceColumnDefinition) (rest.TableC } type convertor struct { - headers []metav1beta1.TableColumnDefinition + headers []metav1.TableColumnDefinition additionalColumns []*jsonpath.JSONPath } -func (c *convertor) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { - table := &metav1beta1.Table{} - opt, ok := tableOptions.(*metav1beta1.TableOptions) +func (c *convertor) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { + table := &metav1.Table{} + opt, ok := tableOptions.(*metav1.TableOptions) noHeaders := ok && opt != nil && opt.NoHeaders if !noHeaders { table.ColumnDefinitions = c.headers diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor_test.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor_test.go index 1b808c70be0..98b47486793 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor/tableconvertor_test.go @@ -76,7 +76,7 @@ func Test_cellForJSONValue(t *testing.T) { func Test_convertor_ConvertToTable(t *testing.T) { type fields struct { - headers []metav1beta1.TableColumnDefinition + headers []metav1.TableColumnDefinition additionalColumns []*jsonpath.JSONPath } type args struct { @@ -88,13 +88,13 @@ func Test_convertor_ConvertToTable(t *testing.T) { name string fields fields args args - want *metav1beta1.Table + want *metav1.Table wantErr bool }{ { name: "Return table for object", fields: fields{ - headers: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, + headers: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, }, args: args{ obj: &metav1beta1.PartialObjectMetadata{ @@ -102,9 +102,9 @@ func Test_convertor_ConvertToTable(t *testing.T) { }, tableOptions: nil, }, - want: &metav1beta1.Table{ - ColumnDefinitions: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, - Rows: []metav1beta1.TableRow{ + want: &metav1.Table{ + ColumnDefinitions: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, + Rows: []metav1.TableRow{ { Cells: []interface{}{"blah"}, Object: runtime.RawExtension{ @@ -119,7 +119,7 @@ func Test_convertor_ConvertToTable(t *testing.T) { { name: "Return table for list", fields: fields{ - headers: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, + headers: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, }, args: args{ obj: &metav1beta1.PartialObjectMetadataList{ @@ -130,9 +130,9 @@ func Test_convertor_ConvertToTable(t *testing.T) { }, tableOptions: nil, }, - want: &metav1beta1.Table{ - ColumnDefinitions: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, - Rows: []metav1beta1.TableRow{ + want: &metav1.Table{ + ColumnDefinitions: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, + Rows: []metav1.TableRow{ { Cells: []interface{}{"blah"}, Object: runtime.RawExtension{ @@ -155,17 +155,17 @@ func Test_convertor_ConvertToTable(t *testing.T) { { name: "Accept TableOptions", fields: fields{ - headers: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, + headers: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, }, args: args{ obj: &metav1beta1.PartialObjectMetadata{ ObjectMeta: metav1.ObjectMeta{Name: "blah", CreationTimestamp: metav1.NewTime(time.Unix(1, 0))}, }, - tableOptions: &metav1beta1.TableOptions{}, + tableOptions: &metav1.TableOptions{}, }, - want: &metav1beta1.Table{ - ColumnDefinitions: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, - Rows: []metav1beta1.TableRow{ + want: &metav1.Table{ + ColumnDefinitions: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, + Rows: []metav1.TableRow{ { Cells: []interface{}{"blah"}, Object: runtime.RawExtension{ @@ -180,16 +180,16 @@ func Test_convertor_ConvertToTable(t *testing.T) { { name: "Omit headers from TableOptions", fields: fields{ - headers: []metav1beta1.TableColumnDefinition{{Name: "name", Type: "string"}}, + headers: []metav1.TableColumnDefinition{{Name: "name", Type: "string"}}, }, args: args{ obj: &metav1beta1.PartialObjectMetadata{ ObjectMeta: metav1.ObjectMeta{Name: "blah", CreationTimestamp: metav1.NewTime(time.Unix(1, 0))}, }, - tableOptions: &metav1beta1.TableOptions{NoHeaders: true}, + tableOptions: &metav1.TableOptions{NoHeaders: true}, }, - want: &metav1beta1.Table{ - Rows: []metav1beta1.TableRow{ + want: &metav1.Table{ + Rows: []metav1.TableRow{ { Cells: []interface{}{"blah"}, Object: runtime.RawExtension{ diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/table_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/table_test.go index 316fee107e2..897dd19df73 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/table_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/table_test.go @@ -158,97 +158,198 @@ func TestTableGet(t *testing.T) { t.Fatal(err) } - ret, err := crRestClient.Get(). - Resource(crd.Spec.Names.Plural). - SetHeader("Accept", fmt.Sprintf("application/json;as=Table;v=%s;g=%s, application/json", metav1beta1.SchemeGroupVersion.Version, metav1beta1.GroupName)). - VersionedParams(&metav1beta1.TableOptions{}, parameterCodec). - Do(). - Get() - if err != nil { - t.Fatalf("failed to list %v resources: %v", gvk, err) - } - - tbl, ok := ret.(*metav1beta1.Table) - if !ok { - t.Fatalf("expected metav1beta1.Table, got %T", ret) - } - t.Logf("%v table list: %#v", gvk, tbl) - - columns, err := getColumnsForVersion(crd, v.Name) - if err != nil { - t.Fatal(err) - } - expectColumnNum := len(columns) + 1 - if got, expected := len(tbl.ColumnDefinitions), expectColumnNum; got != expected { - t.Errorf("expected %d headers, got %d", expected, got) - } else { - age := metav1beta1.TableColumnDefinition{Name: "Age", Type: "date", Format: "", Description: "Custom resource definition column (in JSONPath format): .metadata.creationTimestamp", Priority: 0} - if got, expected := tbl.ColumnDefinitions[1], age; got != expected { - t.Errorf("expected column definition %#v, got %#v", expected, got) + // metav1beta1 table + { + ret, err := crRestClient.Get(). + Resource(crd.Spec.Names.Plural). + SetHeader("Accept", fmt.Sprintf("application/json;as=Table;v=%s;g=%s, application/json", metav1beta1.SchemeGroupVersion.Version, metav1beta1.GroupName)). + VersionedParams(&metav1beta1.TableOptions{}, parameterCodec). + Do(). + Get() + if err != nil { + t.Fatalf("failed to list %v resources: %v", gvk, err) } - alpha := metav1beta1.TableColumnDefinition{Name: "Alpha", Type: "string", Format: "", Description: "Custom resource definition column (in JSONPath format): .spec.alpha", Priority: 0} - if got, expected := tbl.ColumnDefinitions[2], alpha; got != expected { - t.Errorf("expected column definition %#v, got %#v", expected, got) + tbl, ok := ret.(*metav1beta1.Table) + if !ok { + t.Fatalf("expected metav1beta1.Table, got %T", ret) } + t.Logf("%v table list: %#v", gvk, tbl) - beta := metav1beta1.TableColumnDefinition{Name: "Beta", Type: "integer", Format: "int64", Description: "the beta field", Priority: 42} - if got, expected := tbl.ColumnDefinitions[3], beta; got != expected { - t.Errorf("expected column definition %#v, got %#v", expected, got) + columns, err := getColumnsForVersion(crd, v.Name) + if err != nil { + t.Fatal(err) } - - gamma := metav1beta1.TableColumnDefinition{Name: "Gamma", Type: "integer", Description: "a column with wrongly typed values"} - if got, expected := tbl.ColumnDefinitions[4], gamma; got != expected { - t.Errorf("expected column definition %#v, got %#v", expected, got) - } - - epsilon := metav1beta1.TableColumnDefinition{Name: "Epsilon", Type: "string", Description: "an array of integers as string"} - if got, expected := tbl.ColumnDefinitions[5], epsilon; got != expected { - t.Errorf("expected column definition %#v, got %#v", expected, got) - } - - // Validate extra column for v1 - if i == 1 { - zeta := metav1beta1.TableColumnDefinition{Name: "Zeta", Type: "integer", Format: "int64", Description: "the zeta field", Priority: 42} - if got, expected := tbl.ColumnDefinitions[6], zeta; got != expected { + expectColumnNum := len(columns) + 1 + if got, expected := len(tbl.ColumnDefinitions), expectColumnNum; got != expected { + t.Errorf("expected %d headers, got %d", expected, got) + } else { + age := metav1beta1.TableColumnDefinition{Name: "Age", Type: "date", Format: "", Description: "Custom resource definition column (in JSONPath format): .metadata.creationTimestamp", Priority: 0} + if got, expected := tbl.ColumnDefinitions[1], age; got != expected { t.Errorf("expected column definition %#v, got %#v", expected, got) } - } - } - if got, expected := len(tbl.Rows), 1; got != expected { - t.Errorf("expected %d rows, got %d", expected, got) - } else if got, expected := len(tbl.Rows[0].Cells), expectColumnNum; got != expected { - t.Errorf("expected %d cells, got %d", expected, got) - } else { - if got, expected := tbl.Rows[0].Cells[0], "foo"; got != expected { - t.Errorf("expected cell[0] to equal %q, got %q", expected, got) - } - if s, ok := tbl.Rows[0].Cells[1].(string); !ok { - t.Errorf("expected cell[1] to be a string, got: %#v", tbl.Rows[0].Cells[1]) - } else { - dur, err := time.ParseDuration(s) - if err != nil { - t.Errorf("expected cell[1] to be a duration: %v", err) - } else if abs(dur.Seconds()) > 30.0 { - t.Errorf("expected cell[1] to be a small age, but got: %v", dur) + + alpha := metav1beta1.TableColumnDefinition{Name: "Alpha", Type: "string", Format: "", Description: "Custom resource definition column (in JSONPath format): .spec.alpha", Priority: 0} + if got, expected := tbl.ColumnDefinitions[2], alpha; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + beta := metav1beta1.TableColumnDefinition{Name: "Beta", Type: "integer", Format: "int64", Description: "the beta field", Priority: 42} + if got, expected := tbl.ColumnDefinitions[3], beta; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + gamma := metav1beta1.TableColumnDefinition{Name: "Gamma", Type: "integer", Description: "a column with wrongly typed values"} + if got, expected := tbl.ColumnDefinitions[4], gamma; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + epsilon := metav1beta1.TableColumnDefinition{Name: "Epsilon", Type: "string", Description: "an array of integers as string"} + if got, expected := tbl.ColumnDefinitions[5], epsilon; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + // Validate extra column for v1 + if i == 1 { + zeta := metav1beta1.TableColumnDefinition{Name: "Zeta", Type: "integer", Format: "int64", Description: "the zeta field", Priority: 42} + if got, expected := tbl.ColumnDefinitions[6], zeta; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } } } - if got, expected := tbl.Rows[0].Cells[2], "foo_123"; got != expected { - t.Errorf("expected cell[2] to equal %q, got %q", expected, got) + if got, expected := len(tbl.Rows), 1; got != expected { + t.Errorf("expected %d rows, got %d", expected, got) + } else if got, expected := len(tbl.Rows[0].Cells), expectColumnNum; got != expected { + t.Errorf("expected %d cells, got %d", expected, got) + } else { + if got, expected := tbl.Rows[0].Cells[0], "foo"; got != expected { + t.Errorf("expected cell[0] to equal %q, got %q", expected, got) + } + if s, ok := tbl.Rows[0].Cells[1].(string); !ok { + t.Errorf("expected cell[1] to be a string, got: %#v", tbl.Rows[0].Cells[1]) + } else { + dur, err := time.ParseDuration(s) + if err != nil { + t.Errorf("expected cell[1] to be a duration: %v", err) + } else if abs(dur.Seconds()) > 30.0 { + t.Errorf("expected cell[1] to be a small age, but got: %v", dur) + } + } + if got, expected := tbl.Rows[0].Cells[2], "foo_123"; got != expected { + t.Errorf("expected cell[2] to equal %q, got %q", expected, got) + } + if got, expected := tbl.Rows[0].Cells[3], int64(10); got != expected { + t.Errorf("expected cell[3] to equal %#v, got %#v", expected, got) + } + if got, expected := tbl.Rows[0].Cells[4], interface{}(nil); got != expected { + t.Errorf("expected cell[4] to equal %#v although the type does not match the column, got %#v", expected, got) + } + if got, expected := tbl.Rows[0].Cells[5], "[1 2 3]"; got != expected { + t.Errorf("expected cell[5] to equal %q, got %q", expected, got) + } + // Validate extra column for v1 + if i == 1 { + if got, expected := tbl.Rows[0].Cells[6], int64(5); got != expected { + t.Errorf("expected cell[6] to equal %q, got %q", expected, got) + } + } } - if got, expected := tbl.Rows[0].Cells[3], int64(10); got != expected { - t.Errorf("expected cell[3] to equal %#v, got %#v", expected, got) + } + + // metav1 table + { + ret, err := crRestClient.Get(). + Resource(crd.Spec.Names.Plural). + SetHeader("Accept", fmt.Sprintf("application/json;as=Table;v=%s;g=%s, application/json", metav1.SchemeGroupVersion.Version, metav1.GroupName)). + VersionedParams(&metav1.TableOptions{}, parameterCodec). + Do(). + Get() + if err != nil { + t.Fatalf("failed to list %v resources: %v", gvk, err) } - if got, expected := tbl.Rows[0].Cells[4], interface{}(nil); got != expected { - t.Errorf("expected cell[4] to equal %#v although the type does not match the column, got %#v", expected, got) + + tbl, ok := ret.(*metav1.Table) + if !ok { + t.Fatalf("expected metav1.Table, got %T", ret) } - if got, expected := tbl.Rows[0].Cells[5], "[1 2 3]"; got != expected { - t.Errorf("expected cell[5] to equal %q, got %q", expected, got) + t.Logf("%v table list: %#v", gvk, tbl) + + columns, err := getColumnsForVersion(crd, v.Name) + if err != nil { + t.Fatal(err) } - // Validate extra column for v1 - if i == 1 { - if got, expected := tbl.Rows[0].Cells[6], int64(5); got != expected { - t.Errorf("expected cell[6] to equal %q, got %q", expected, got) + expectColumnNum := len(columns) + 1 + if got, expected := len(tbl.ColumnDefinitions), expectColumnNum; got != expected { + t.Errorf("expected %d headers, got %d", expected, got) + } else { + age := metav1.TableColumnDefinition{Name: "Age", Type: "date", Format: "", Description: "Custom resource definition column (in JSONPath format): .metadata.creationTimestamp", Priority: 0} + if got, expected := tbl.ColumnDefinitions[1], age; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + alpha := metav1.TableColumnDefinition{Name: "Alpha", Type: "string", Format: "", Description: "Custom resource definition column (in JSONPath format): .spec.alpha", Priority: 0} + if got, expected := tbl.ColumnDefinitions[2], alpha; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + beta := metav1.TableColumnDefinition{Name: "Beta", Type: "integer", Format: "int64", Description: "the beta field", Priority: 42} + if got, expected := tbl.ColumnDefinitions[3], beta; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + gamma := metav1.TableColumnDefinition{Name: "Gamma", Type: "integer", Description: "a column with wrongly typed values"} + if got, expected := tbl.ColumnDefinitions[4], gamma; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + epsilon := metav1.TableColumnDefinition{Name: "Epsilon", Type: "string", Description: "an array of integers as string"} + if got, expected := tbl.ColumnDefinitions[5], epsilon; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + + // Validate extra column for v1 + if i == 1 { + zeta := metav1.TableColumnDefinition{Name: "Zeta", Type: "integer", Format: "int64", Description: "the zeta field", Priority: 42} + if got, expected := tbl.ColumnDefinitions[6], zeta; got != expected { + t.Errorf("expected column definition %#v, got %#v", expected, got) + } + } + } + if got, expected := len(tbl.Rows), 1; got != expected { + t.Errorf("expected %d rows, got %d", expected, got) + } else if got, expected := len(tbl.Rows[0].Cells), expectColumnNum; got != expected { + t.Errorf("expected %d cells, got %d", expected, got) + } else { + if got, expected := tbl.Rows[0].Cells[0], "foo"; got != expected { + t.Errorf("expected cell[0] to equal %q, got %q", expected, got) + } + if s, ok := tbl.Rows[0].Cells[1].(string); !ok { + t.Errorf("expected cell[1] to be a string, got: %#v", tbl.Rows[0].Cells[1]) + } else { + dur, err := time.ParseDuration(s) + if err != nil { + t.Errorf("expected cell[1] to be a duration: %v", err) + } else if abs(dur.Seconds()) > 30.0 { + t.Errorf("expected cell[1] to be a small age, but got: %v", dur) + } + } + if got, expected := tbl.Rows[0].Cells[2], "foo_123"; got != expected { + t.Errorf("expected cell[2] to equal %q, got %q", expected, got) + } + if got, expected := tbl.Rows[0].Cells[3], int64(10); got != expected { + t.Errorf("expected cell[3] to equal %#v, got %#v", expected, got) + } + if got, expected := tbl.Rows[0].Cells[4], interface{}(nil); got != expected { + t.Errorf("expected cell[4] to equal %#v although the type does not match the column, got %#v", expected, got) + } + if got, expected := tbl.Rows[0].Cells[5], "[1 2 3]"; got != expected { + t.Errorf("expected cell[5] to equal %q, got %q", expected, got) + } + // Validate extra column for v1 + if i == 1 { + if got, expected := tbl.Rows[0].Cells[6], int64(5); got != expected { + t.Errorf("expected cell[6] to equal %q, got %q", expected, got) + } } } } diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/table/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/meta/table/BUILD index 1a4c6b1a156..ed0ee956fbc 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/table/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/table/BUILD @@ -9,7 +9,6 @@ go_library( deps = [ "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/duration:go_default_library", ], diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/table/table.go b/staging/src/k8s.io/apimachinery/pkg/api/meta/table/table.go index 11c4afacb0a..1887f32626b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/table/table.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/table/table.go @@ -21,16 +21,15 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/duration" ) // MetaToTableRow converts a list or object into one or more table rows. The provided rowFn is invoked for // each accessed item, with name and age being passed to each. -func MetaToTableRow(obj runtime.Object, rowFn func(obj runtime.Object, m metav1.Object, name, age string) ([]interface{}, error)) ([]metav1beta1.TableRow, error) { +func MetaToTableRow(obj runtime.Object, rowFn func(obj runtime.Object, m metav1.Object, name, age string) ([]interface{}, error)) ([]metav1.TableRow, error) { if meta.IsListType(obj) { - rows := make([]metav1beta1.TableRow, 0, 16) + rows := make([]metav1.TableRow, 0, 16) err := meta.EachListItem(obj, func(obj runtime.Object) error { nestedRows, err := MetaToTableRow(obj, rowFn) if err != nil { @@ -45,12 +44,12 @@ func MetaToTableRow(obj runtime.Object, rowFn func(obj runtime.Object, m metav1. return rows, nil } - rows := make([]metav1beta1.TableRow, 0, 1) + rows := make([]metav1.TableRow, 0, 1) m, err := meta.Accessor(obj) if err != nil { return nil, err } - row := metav1beta1.TableRow{ + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells, err = rowFn(obj, m, m.GetName(), ConvertToHumanReadableDateType(m.GetCreationTimestamp())) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go index b56140de5fc..19f21099873 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go @@ -71,8 +71,8 @@ func addToGroupVersion(scheme *runtime.Scheme) error { &metav1.UpdateOptions{}, ) scheme.AddKnownTypes(SchemeGroupVersion, - &metav1beta1.Table{}, - &metav1beta1.TableOptions{}, + &metav1.Table{}, + &metav1.TableOptions{}, &metav1beta1.PartialObjectMetadata{}, &metav1beta1.PartialObjectMetadataList{}, ) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/BUILD index cbf11f06dec..858687b8930 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/BUILD @@ -8,7 +8,6 @@ go_library( visibility = ["//visibility:public"], deps = [ "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/validation.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/validation.go index 70fc01a34eb..563b62efa5c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/validation.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation/validation.go @@ -18,12 +18,11 @@ package validation import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/util/validation/field" ) // ValidateTableOptions returns any invalid flags on TableOptions. -func ValidateTableOptions(opts *metav1beta1.TableOptions) field.ErrorList { +func ValidateTableOptions(opts *metav1.TableOptions) field.ErrorList { var allErrs field.ErrorList switch opts.IncludeObject { case metav1.IncludeMetadata, metav1.IncludeNone, metav1.IncludeObject, "": diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go index 80c70f50b95..bdd41236ac2 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go @@ -377,7 +377,7 @@ func (storage *SimpleRESTStorage) Export(ctx context.Context, name string, opts return obj, storage.errors["export"] } -func (storage *SimpleRESTStorage) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { +func (storage *SimpleRESTStorage) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { return rest.NewDefaultTableConvertor(schema.GroupResource{Resource: "simple"}).ConvertToTable(ctx, obj, tableOptions) } @@ -895,6 +895,10 @@ func (OnlyGetRESTStorage) List(ctx context.Context, options *metainternalversion return nil, nil } +func (OnlyGetRESTStorage) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { + return nil, nil +} + // TestSomeUnimplementedRESTStorage ensures that if a rest.Storage does // not implement a given method, that it is literally not registered // with the server. We need to have at least one verb supported inorder @@ -1900,7 +1904,7 @@ func TestGetTable(t *testing.T) { accept string params url.Values pretty bool - expected *metav1beta1.Table + expected *metav1.Table statusCode int item bool }{ @@ -1935,14 +1939,14 @@ func TestGetTable(t *testing.T) { { item: true, accept: "application/json;as=Table;v=v1beta1;g=meta.k8s.io", - expected: &metav1beta1.Table{ + expected: &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", now.Time.UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedV1Beta1Body}}, }, }, @@ -1953,14 +1957,14 @@ func TestGetTable(t *testing.T) { runtime.ContentTypeProtobuf + ";as=Table;v=v1beta1;g=meta.k8s.io", "application/json;as=Table;v=v1beta1;g=meta.k8s.io", }, ","), - expected: &metav1beta1.Table{ + expected: &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", now.Time.UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedV1Beta1Body}}, }, }, @@ -1969,14 +1973,14 @@ func TestGetTable(t *testing.T) { item: true, accept: "application/json;as=Table;v=v1beta1;g=meta.k8s.io", params: url.Values{"includeObject": []string{"Metadata"}}, - expected: &metav1beta1.Table{ + expected: &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", now.Time.UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedV1Beta1Body}}, }, }, @@ -1984,14 +1988,14 @@ func TestGetTable(t *testing.T) { { accept: "application/json;as=Table;v=v1beta1;g=meta.k8s.io", params: url.Values{"includeObject": []string{"Metadata"}}, - expected: &metav1beta1.Table{ + expected: &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/test/link"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", now.Time.UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedV1Beta1Body}}, }, }, @@ -2051,7 +2055,7 @@ func TestGetTable(t *testing.T) { if resp.StatusCode != http.StatusOK { t.Errorf("%d: unexpected response: %#v", i, resp) } - var itemOut metav1beta1.Table + var itemOut metav1.Table body, err := extractBody(resp, &itemOut) if err != nil { t.Fatal(err) @@ -2117,14 +2121,14 @@ func TestWatchTable(t *testing.T) { { Type: "ADDED", Object: runtime.RawExtension{ - Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1beta1.Table{ + Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", time.Unix(1, 0).UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedBody}}, }, }))), @@ -2142,14 +2146,14 @@ func TestWatchTable(t *testing.T) { { Type: "ADDED", Object: runtime.RawExtension{ - Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1beta1.Table{ + Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", time.Unix(1, 0).UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedBody}}, }, }))), @@ -2158,10 +2162,10 @@ func TestWatchTable(t *testing.T) { { Type: "MODIFIED", Object: runtime.RawExtension{ - Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1beta1.Table{ + Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1beta1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - Rows: []metav1beta1.TableRow{ + Rows: []metav1.TableRow{ {Cells: []interface{}{"foo1", time.Unix(1, 0).UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedBody}}, }, }))), @@ -2182,7 +2186,7 @@ func TestWatchTable(t *testing.T) { Raw: []byte(strings.TrimSpace(runtime.EncodeOrDie(s, &metav1.Table{ TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1"}, ListMeta: metav1.ListMeta{ResourceVersion: "10", SelfLink: "/blah"}, - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metaDoc["name"]}, {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, }, diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go index 6a13a8d5ec9..f9b38e07d37 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/response.go @@ -74,7 +74,7 @@ func doTransformObject(ctx context.Context, obj runtime.Object, opts interface{} return asPartialObjectMetadataList(obj, target.GroupVersion()) case target.Kind == "Table": - options, ok := opts.(*metav1beta1.TableOptions) + options, ok := opts.(*metav1.TableOptions) if !ok { return nil, fmt.Errorf("unexpected TableOptions, got %T", opts) } @@ -93,8 +93,8 @@ func optionsForTransform(mediaType negotiation.MediaTypeOptions, req *http.Reque switch target := mediaType.Convert; { case target == nil: case target.Kind == "Table" && (target.GroupVersion() == metav1beta1.SchemeGroupVersion || target.GroupVersion() == metav1.SchemeGroupVersion): - opts := &metav1beta1.TableOptions{} - if err := metainternalversionscheme.ParameterCodec.DecodeParameters(req.URL.Query(), metav1beta1.SchemeGroupVersion, opts); err != nil { + opts := &metav1.TableOptions{} + if err := metainternalversionscheme.ParameterCodec.DecodeParameters(req.URL.Query(), metav1.SchemeGroupVersion, opts); err != nil { return nil, err } switch errs := validation.ValidateTableOptions(opts); len(errs) { @@ -159,7 +159,7 @@ func (e errNotAcceptable) Status() metav1.Status { } } -func asTable(ctx context.Context, result runtime.Object, opts *metav1beta1.TableOptions, scope *RequestScope, groupVersion schema.GroupVersion) (runtime.Object, error) { +func asTable(ctx context.Context, result runtime.Object, opts *metav1.TableOptions, scope *RequestScope, groupVersion schema.GroupVersion) (runtime.Object, error) { switch groupVersion { case metav1beta1.SchemeGroupVersion, metav1.SchemeGroupVersion: default: diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/watch.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/watch.go index fb201ba161e..e79e72e4e43 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/watch.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/watch.go @@ -25,7 +25,6 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer/streaming" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -125,7 +124,7 @@ func serveWatch(watcher watch.Interface, scope *RequestScope, mediaTypeOptions n // When we are transformed to a table, use the table options as the state for whether we // should print headers - on watch, we only want to print table headers on the first object // and omit them on subsequent events. - if tableOptions, ok := options.(*metav1beta1.TableOptions); ok { + if tableOptions, ok := options.(*metav1.TableOptions); ok { tableOptions.NoHeaders = true } return result diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD index 5980b299a50..719a16e3304 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD @@ -65,7 +65,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/validation/path:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go index 95d0ad3f484..f1ac797592d 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/api/validation/path" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -1353,7 +1352,7 @@ func (e *Store) startObservingCount(period time.Duration) func() { return func() { close(stopCh) } } -func (e *Store) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { +func (e *Store) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { if e.TableConvertor != nil { return e.TableConvertor.ConvertToTable(ctx, object, tableOptions) } diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD index 3d801d7a8c2..1c04312bcd8 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD @@ -41,7 +41,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go b/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go index 28f4bf07cf0..9ea6f98970e 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go @@ -24,7 +24,6 @@ import ( metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/watch" @@ -99,6 +98,8 @@ type Lister interface { NewList() runtime.Object // List selects resources in the storage which match to the selector. 'options' can be nil. List(ctx context.Context, options *metainternalversion.ListOptions) (runtime.Object, error) + // TableConvertor ensures all list implementers also implement table conversion + TableConvertor } // Exporter is an object that knows how to strip a RESTful resource for export. A store should implement this interface @@ -141,7 +142,7 @@ type GetterWithOptions interface { } type TableConvertor interface { - ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) + ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) } // GracefulDeleter knows how to pass deletion options to allow delayed deletion of a diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/table.go b/staging/src/k8s.io/apiserver/pkg/registry/rest/table.go index 684f4acdcba..31a46c74333 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/table.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/table.go @@ -24,7 +24,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) @@ -40,14 +39,14 @@ func NewDefaultTableConvertor(resource schema.GroupResource) TableConvertor { var swaggerMetadataDescriptions = metav1.ObjectMeta{}.SwaggerDoc() -func (c defaultTableConvertor) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { - var table metav1beta1.Table +func (c defaultTableConvertor) ConvertToTable(ctx context.Context, object runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { + var table metav1.Table fn := func(obj runtime.Object) error { m, err := meta.Accessor(obj) if err != nil { return errNotAcceptable{resource: c.qualifiedResource} } - table.Rows = append(table.Rows, metav1beta1.TableRow{ + table.Rows = append(table.Rows, metav1.TableRow{ Cells: []interface{}{m.GetName(), m.GetCreationTimestamp().Time.UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Object: obj}, }) @@ -74,8 +73,8 @@ func (c defaultTableConvertor) ConvertToTable(ctx context.Context, object runtim table.SelfLink = m.GetSelfLink() } } - if opt, ok := tableOptions.(*metav1beta1.TableOptions); !ok || !opt.NoHeaders { - table.ColumnDefinitions = []metav1beta1.TableColumnDefinition{ + if opt, ok := tableOptions.(*metav1.TableOptions); !ok || !opt.NoHeaders { + table.ColumnDefinitions = []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: swaggerMetadataDescriptions["name"]}, {Name: "Created At", Type: "date", Description: swaggerMetadataDescriptions["creationTimestamp"]}, } diff --git a/staging/src/k8s.io/cli-runtime/pkg/printers/BUILD b/staging/src/k8s.io/cli-runtime/pkg/printers/BUILD index 5c0488b5898..16d012c12e1 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/printers/BUILD +++ b/staging/src/k8s.io/cli-runtime/pkg/printers/BUILD @@ -22,7 +22,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/cli-runtime/pkg/printers/tableprinter.go b/staging/src/k8s.io/cli-runtime/pkg/printers/tableprinter.go index 8f6f072aa2f..56bd05aa0d3 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/printers/tableprinter.go +++ b/staging/src/k8s.io/cli-runtime/pkg/printers/tableprinter.go @@ -26,7 +26,6 @@ import ( "github.com/liggitt/tabwriter" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/duration" @@ -36,7 +35,7 @@ import ( var _ ResourcePrinter = &HumanReadablePrinter{} type printHandler struct { - columnDefinitions []metav1beta1.TableColumnDefinition + columnDefinitions []metav1.TableColumnDefinition printFunc reflect.Value } @@ -46,7 +45,7 @@ var ( printFunc: reflect.ValueOf(printStatus), } - statusColumnDefinitions = []metav1beta1.TableColumnDefinition{ + statusColumnDefinitions = []metav1.TableColumnDefinition{ {Name: "Status", Type: "string"}, {Name: "Reason", Type: "string"}, {Name: "Message", Type: "string"}, @@ -57,7 +56,7 @@ var ( printFunc: reflect.ValueOf(printObjectMeta), } - objectMetaColumnDefinitions = []metav1beta1.TableColumnDefinition{ + objectMetaColumnDefinitions = []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]}, {Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]}, } @@ -73,7 +72,7 @@ var ( type HumanReadablePrinter struct { options PrintOptions lastType interface{} - lastColumns []metav1beta1.TableColumnDefinition + lastColumns []metav1.TableColumnDefinition printedHeaders bool } @@ -110,7 +109,7 @@ func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) er // Parameter "obj" is a table from server; print it. // display tables following the rules of options - if table, ok := obj.(*metav1beta1.Table); ok { + if table, ok := obj.(*metav1.Table); ok { // Do not print headers if this table has no column definitions, or they are the same as the last ones we printed localOptions := h.options if h.printedHeaders && (len(table.ColumnDefinitions) == 0 || reflect.DeepEqual(table.ColumnDefinitions, h.lastColumns)) { @@ -136,8 +135,8 @@ func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) er } if len(eventType) > 0 { if err := addColumns(beginning, table, - []metav1beta1.TableColumnDefinition{{Name: "Event", Type: "string"}}, - []cellValueFunc{func(metav1beta1.TableRow) (interface{}, error) { return formatEventType(eventType), nil }}, + []metav1.TableColumnDefinition{{Name: "Event", Type: "string"}}, + []cellValueFunc{func(metav1.TableRow) (interface{}, error) { return formatEventType(eventType), nil }}, ); err != nil { return err } @@ -171,7 +170,7 @@ func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) er // printTable prints a table to the provided output respecting the filtering rules for options // for wide columns and filtered rows. It filters out rows that are Completed. You should call // decorateTable if you receive a table from a remote server before calling printTable. -func printTable(table *metav1beta1.Table, output io.Writer, options PrintOptions) error { +func printTable(table *metav1.Table, output io.Writer, options PrintOptions) error { if !options.NoHeaders { // avoid printing headers if we have no rows to display if len(table.Rows) == 0 { @@ -218,7 +217,7 @@ func printTable(table *metav1beta1.Table, output io.Writer, options PrintOptions return nil } -type cellValueFunc func(metav1beta1.TableRow) (interface{}, error) +type cellValueFunc func(metav1.TableRow) (interface{}, error) type columnAddPosition int @@ -227,7 +226,7 @@ const ( end columnAddPosition = 2 ) -func addColumns(pos columnAddPosition, table *metav1beta1.Table, columns []metav1beta1.TableColumnDefinition, valueFuncs []cellValueFunc) error { +func addColumns(pos columnAddPosition, table *metav1.Table, columns []metav1.TableColumnDefinition, valueFuncs []cellValueFunc) error { if len(columns) != len(valueFuncs) { return fmt.Errorf("cannot prepend columns, unmatched value functions") } @@ -268,7 +267,7 @@ func addColumns(pos columnAddPosition, table *metav1beta1.Table, columns []metav } // All cells successfully computed, now replace columns and rows - newColumns := make([]metav1beta1.TableColumnDefinition, 0, len(columns)+len(table.ColumnDefinitions)) + newColumns := make([]metav1.TableColumnDefinition, 0, len(columns)+len(table.ColumnDefinitions)) switch pos { case beginning: newColumns = append(newColumns, columns...) @@ -291,7 +290,7 @@ func addColumns(pos columnAddPosition, table *metav1beta1.Table, columns []metav // namespace column. It will fill empty columns with nil (if the object // does not expose metadata). It returns an error if the table cannot // be decorated. -func decorateTable(table *metav1beta1.Table, options PrintOptions) error { +func decorateTable(table *metav1.Table, options PrintOptions) error { width := len(table.ColumnDefinitions) + len(options.ColumnLabels) if options.WithNamespace { width++ @@ -313,22 +312,22 @@ func decorateTable(table *metav1beta1.Table, options PrintOptions) error { } if width != len(table.ColumnDefinitions) { - columns = make([]metav1beta1.TableColumnDefinition, 0, width) + columns = make([]metav1.TableColumnDefinition, 0, width) if options.WithNamespace { - columns = append(columns, metav1beta1.TableColumnDefinition{ + columns = append(columns, metav1.TableColumnDefinition{ Name: "Namespace", Type: "string", }) } columns = append(columns, table.ColumnDefinitions...) for _, label := range formatLabelHeaders(options.ColumnLabels) { - columns = append(columns, metav1beta1.TableColumnDefinition{ + columns = append(columns, metav1.TableColumnDefinition{ Name: label, Type: "string", }) } if options.ShowLabels { - columns = append(columns, metav1beta1.TableColumnDefinition{ + columns = append(columns, metav1.TableColumnDefinition{ Name: "Labels", Type: "string", }) @@ -417,7 +416,7 @@ func printRowsForHandlerEntry(output io.Writer, handler *printHandler, eventType } if results[1].IsNil() { - rows := results[0].Interface().([]metav1beta1.TableRow) + rows := results[0].Interface().([]metav1.TableRow) printRows(output, eventType, rows, options) return nil } @@ -439,7 +438,7 @@ func formatEventType(eventType string) string { } // printRows writes the provided rows to output. -func printRows(output io.Writer, eventType string, rows []metav1beta1.TableRow, options PrintOptions) { +func printRows(output io.Writer, eventType string, rows []metav1.TableRow, options PrintOptions) { for _, row := range rows { if len(eventType) > 0 { fmt.Fprint(output, formatEventType(eventType)) @@ -522,20 +521,20 @@ func appendLabelCells(values []interface{}, itemLabels map[string]string, opts P return values } -func printStatus(obj runtime.Object, options PrintOptions) ([]metav1beta1.TableRow, error) { +func printStatus(obj runtime.Object, options PrintOptions) ([]metav1.TableRow, error) { status, ok := obj.(*metav1.Status) if !ok { return nil, fmt.Errorf("expected *v1.Status, got %T", obj) } - return []metav1beta1.TableRow{{ + return []metav1.TableRow{{ Object: runtime.RawExtension{Object: obj}, Cells: []interface{}{status.Status, status.Reason, status.Message}, }}, nil } -func printObjectMeta(obj runtime.Object, options PrintOptions) ([]metav1beta1.TableRow, error) { +func printObjectMeta(obj runtime.Object, options PrintOptions) ([]metav1.TableRow, error) { if meta.IsListType(obj) { - rows := make([]metav1beta1.TableRow, 0, 16) + rows := make([]metav1.TableRow, 0, 16) err := meta.EachListItem(obj, func(obj runtime.Object) error { nestedRows, err := printObjectMeta(obj, options) if err != nil { @@ -550,12 +549,12 @@ func printObjectMeta(obj runtime.Object, options PrintOptions) ([]metav1beta1.Ta return rows, nil } - rows := make([]metav1beta1.TableRow, 0, 1) + rows := make([]metav1.TableRow, 0, 1) m, err := meta.Accessor(obj) if err != nil { return nil, err } - row := metav1beta1.TableRow{ + row := metav1.TableRow{ Object: runtime.RawExtension{Object: obj}, } row.Cells = append(row.Cells, m.GetName(), translateTimestampSince(m.GetCreationTimestamp())) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD index 0a1a0a0cb86..d6726b73ea7 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD @@ -14,7 +14,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/meta/table:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//staging/src/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go index 1179f69d6fb..dd3562391a1 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go @@ -23,7 +23,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metatable "k8s.io/apimachinery/pkg/api/meta/table" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" @@ -60,9 +59,9 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST var swaggerMetadataDescriptions = metav1.ObjectMeta{}.SwaggerDoc() // ConvertToTable implements the TableConvertor interface for REST. -func (c *REST) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1beta1.Table, error) { - table := &metav1beta1.Table{ - ColumnDefinitions: []metav1beta1.TableColumnDefinition{ +func (c *REST) ConvertToTable(ctx context.Context, obj runtime.Object, tableOptions runtime.Object) (*metav1.Table, error) { + table := &metav1.Table{ + ColumnDefinitions: []metav1.TableColumnDefinition{ {Name: "Name", Type: "string", Format: "name", Description: swaggerMetadataDescriptions["name"]}, {Name: "Service", Type: "string", Description: "The reference to the service that hosts this API endpoint."}, {Name: "Available", Type: "string", Description: "Whether this service is available."}, diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/get/get.go b/staging/src/k8s.io/kubectl/pkg/cmd/get/get.go index 8c148316d6d..59dabac4f94 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/get/get.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/get/get.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "net/url" + "strings" "github.com/spf13/cobra" @@ -351,7 +352,7 @@ func (r *RuntimeSorter) Sort() error { return nil } if len(r.objects) == 1 { - _, isTable := r.objects[0].(*metav1beta1.Table) + _, isTable := r.objects[0].(*metav1.Table) if !isTable { return nil } @@ -362,7 +363,7 @@ func (r *RuntimeSorter) Sort() error { for _, obj := range r.objects { switch t := obj.(type) { - case *metav1beta1.Table: + case *metav1.Table: includesTable = true if sorter, err := NewTableSorter(t, r.field); err != nil { @@ -433,11 +434,11 @@ func (o *GetOptions) transformRequests(req *rest.Request) { return } - group := metav1beta1.GroupName - version := metav1beta1.SchemeGroupVersion.Version - - tableParam := fmt.Sprintf("application/json;as=Table;v=%s;g=%s, application/json", version, group) - req.SetHeader("Accept", tableParam) + req.SetHeader("Accept", strings.Join([]string{ + fmt.Sprintf("application/json;as=Table;v=%s;g=%s", metav1.SchemeGroupVersion.Version, metav1.GroupName), + fmt.Sprintf("application/json;as=Table;v=%s;g=%s", metav1beta1.SchemeGroupVersion.Version, metav1beta1.GroupName), + "application/json", + }, ",")) // if sorting, ensure we receive the full object in order to introspect its fields via jsonpath if o.Sort { diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/get/get_test.go b/staging/src/k8s.io/kubectl/pkg/cmd/get/get_test.go index d7270fbc3c2..b3cf46f3543 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/get/get_test.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/get/get_test.go @@ -18,6 +18,7 @@ package get import ( "bytes" + "encoding/json" encjson "encoding/json" "fmt" "io" @@ -267,6 +268,31 @@ foo 0/0 0 } } +func TestGetV1TableObjects(t *testing.T) { + pods, _, _ := cmdtesting.TestData() + + tf := cmdtesting.NewTestFactory().WithNamespace("test") + defer tf.Cleanup() + codec := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) + + tf.UnstructuredClient = &fake.RESTClient{ + NegotiatedSerializer: resource.UnstructuredPlusDefaultContentConfig().NegotiatedSerializer, + Resp: &http.Response{StatusCode: http.StatusOK, Header: cmdtesting.DefaultHeader(), Body: podV1TableObjBody(codec, pods.Items[0])}, + } + + streams, _, buf, _ := genericclioptions.NewTestIOStreams() + cmd := NewCmdGet("kubectl", tf, streams) + cmd.SetOutput(buf) + cmd.Run(cmd, []string{"pods", "foo"}) + + expected := `NAME READY STATUS RESTARTS AGE +foo 0/0 0 +` + if e, a := expected, buf.String(); e != a { + t.Errorf("expected\n%v\ngot\n%v", e, a) + } +} + func TestGetObjectsShowKind(t *testing.T) { pods, _, _ := cmdtesting.TestData() @@ -2706,7 +2732,32 @@ var podColumns = []metav1.TableColumnDefinition{ // build a meta table response from a pod list func podTableObjBody(codec runtime.Codec, pods ...corev1.Pod) io.ReadCloser { + table := &metav1beta1.Table{ + TypeMeta: metav1.TypeMeta{APIVersion: "meta.k8s.io/v1beta1", Kind: "Table"}, + ColumnDefinitions: podColumns, + } + for i := range pods { + b := bytes.NewBuffer(nil) + codec.Encode(&pods[i], b) + table.Rows = append(table.Rows, metav1beta1.TableRow{ + Object: runtime.RawExtension{Raw: b.Bytes()}, + Cells: []interface{}{pods[i].Name, "0/0", "", int64(0), "", "", "", "", ""}, + }) + } + data, err := json.Marshal(table) + if err != nil { + panic(err) + } + if !strings.Contains(string(data), `"meta.k8s.io/v1beta1"`) { + panic("expected v1beta1, got " + string(data)) + } + return cmdtesting.BytesBody(data) +} + +// build a meta table response from a pod list +func podV1TableObjBody(codec runtime.Codec, pods ...corev1.Pod) io.ReadCloser { table := &metav1.Table{ + TypeMeta: metav1.TypeMeta{APIVersion: "meta.k8s.io/v1", Kind: "Table"}, ColumnDefinitions: podColumns, } for i := range pods { @@ -2717,7 +2768,14 @@ func podTableObjBody(codec runtime.Codec, pods ...corev1.Pod) io.ReadCloser { Cells: []interface{}{pods[i].Name, "0/0", "", int64(0), "", "", "", "", ""}, }) } - return cmdtesting.ObjBody(codec, table) + data, err := json.Marshal(table) + if err != nil { + panic(err) + } + if !strings.Contains(string(data), `"meta.k8s.io/v1"`) { + panic("expected v1, got " + string(data)) + } + return cmdtesting.BytesBody(data) } // build meta table watch events from pod watch events diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/get/skip_printer.go b/staging/src/k8s.io/kubectl/pkg/cmd/get/skip_printer.go index f02883cb1da..95a804315bc 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/get/skip_printer.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/get/skip_printer.go @@ -19,7 +19,7 @@ package get import ( "io" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/cli-runtime/pkg/printers" ) @@ -37,7 +37,7 @@ func (p *skipPrinter) PrintObj(obj runtime.Object, writer io.Writer) error { return p.delegate.PrintObj(obj, writer) } - table, isTable := obj.(*metav1beta1.Table) + table, isTable := obj.(*metav1.Table) if !isTable { return nil } diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/get/sorter.go b/staging/src/k8s.io/kubectl/pkg/cmd/get/sorter.go index 599b4acd157..d5a2baa64ce 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/get/sorter.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/get/sorter.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/cli-runtime/pkg/printers" "k8s.io/client-go/util/jsonpath" @@ -46,7 +45,7 @@ type SortingPrinter struct { } func (s *SortingPrinter) PrintObj(obj runtime.Object, out io.Writer) error { - if table, isTable := obj.(*metav1beta1.Table); isTable && len(table.Rows) > 1 { + if table, isTable := obj.(*metav1.Table); isTable && len(table.Rows) > 1 { parsedField, err := RelaxedJSONPathExpression(s.SortField) if err != nil { parsedField = s.SortField @@ -322,7 +321,7 @@ func (r *RuntimeSort) OriginalPosition(ix int) int { type TableSorter struct { field string - obj *metav1beta1.Table + obj *metav1.Table parsedRows [][][]reflect.Value } @@ -361,7 +360,7 @@ func (t *TableSorter) Sort() error { return nil } -func NewTableSorter(table *metav1beta1.Table, field string) (*TableSorter, error) { +func NewTableSorter(table *metav1.Table, field string) (*TableSorter, error) { var parsedRows [][][]reflect.Value parser := jsonpath.New("sorting").AllowMissingKeys(true) diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/get/table_printer.go b/staging/src/k8s.io/kubectl/pkg/cmd/get/table_printer.go index 1534c3d7fae..e096d96690d 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/get/table_printer.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/get/table_printer.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/cli-runtime/pkg/printers" "k8s.io/klog" ) @@ -45,24 +46,26 @@ func (t *TablePrinter) PrintObj(obj runtime.Object, writer io.Writer) error { return t.Delegate.PrintObj(obj, writer) } +var recognizedTableVersions = map[schema.GroupVersionKind]bool{ + metav1beta1.SchemeGroupVersion.WithKind("Table"): true, + metav1.SchemeGroupVersion.WithKind("Table"): true, +} + func decodeIntoTable(obj runtime.Object) (runtime.Object, error) { event, isEvent := obj.(*metav1.WatchEvent) if isEvent { obj = event.Object.Object } - if obj.GetObjectKind().GroupVersionKind().Group != metav1beta1.GroupName { - return nil, fmt.Errorf("attempt to decode non-Table object into a v1beta1.Table") - } - if obj.GetObjectKind().GroupVersionKind().Kind != "Table" { - return nil, fmt.Errorf("attempt to decode non-Table object into a v1beta1.Table") + if !recognizedTableVersions[obj.GetObjectKind().GroupVersionKind()] { + return nil, fmt.Errorf("attempt to decode non-Table object") } unstr, ok := obj.(*unstructured.Unstructured) if !ok { return nil, fmt.Errorf("attempt to decode non-Unstructured object") } - table := &metav1beta1.Table{} + table := &metav1.Table{} if err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstr.Object, table); err != nil { return nil, err }