{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63972","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63972/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63972/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63972/events","html_url":"https://github.com/kubernetes/kubernetes/pull/63972","id":324054685,"number":63972,"title":"[WIP] add apiversion and kind to list subitems","user":{"login":"deads2k","id":8225098,"avatar_url":"https://avatars0.githubusercontent.com/u/8225098?v=4","gravatar_id":"","url":"https://api.github.com/users/deads2k","html_url":"https://github.com/deads2k","followers_url":"https://api.github.com/users/deads2k/followers","following_url":"https://api.github.com/users/deads2k/following{/other_user}","gists_url":"https://api.github.com/users/deads2k/gists{/gist_id}","starred_url":"https://api.github.com/users/deads2k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deads2k/subscriptions","organizations_url":"https://api.github.com/users/deads2k/orgs","repos_url":"https://api.github.com/users/deads2k/repos","events_url":"https://api.github.com/users/deads2k/events{/privacy}","received_events_url":"https://api.github.com/users/deads2k/received_events","type":"User","site_admin":false},"labels":[{"id":477397086,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":687500047,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/do-not-merge/work-in-progress","name":"do-not-merge/work-in-progress","color":"e11d21","default":false},{"id":261005360,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/api-change","name":"kind/api-change","color":"c7def8","default":false},{"id":105146071,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/bug","name":"kind/bug","color":"e11d21","default":false},{"id":200149833,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note","name":"release-note","color":"c2e0c6","default":false},{"id":173493835,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/api-machinery","name":"sig/api-machinery","color":"d2b48c","default":false},{"id":253451057,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XL","name":"size/XL","color":"ee5500","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2018-05-17T14:42:52Z","updated_at":"2018-05-21T14:53:08Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/63972","html_url":"https://github.com/kubernetes/kubernetes/pull/63972","diff_url":"https://github.com/kubernetes/kubernetes/pull/63972.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/63972.patch"},"body":"Fixes https://github.com/kubernetes/kubernetes/issues/3030  (from 2014, would that be a record?)\r\n\r\nThe current state is ugly, but could be tidied up and tests added.  I put a random test-cmd check in there for proof.\r\n\r\nAny concerns about where and how I did this?  It requires \r\n 1. that scheme recognizes your list item\r\n 2. that the list item is registered in the same GV as your list\r\n 3. that you specify a specific (not generic) list.\r\n\r\nI'd probably reconcile the `pkg/api/meta` cycle by pushing these into the `pkg/runtime/scheme` package.\r\n\r\n@kubernetes/sig-api-machinery-bugs \r\n@smarterclayton @liggitt @lavalamp @sttts \r\n\r\n```release-note\r\nnested items in lists (like namespacelist), will have apiversion and kind\r\n```\r\n\r\n\r\n\r\n```json\r\n{\r\n  \"kind\": \"NamespaceList\",\r\n  \"apiVersion\": \"v1\",\r\n  \"metadata\": {\r\n    \"selfLink\": \"/api/v1/namespaces\",\r\n    \"resourceVersion\": \"726\"\r\n  },\r\n  \"items\": [\r\n    {\r\n      \"kind\": \"Namespace\",\r\n      \"apiVersion\": \"v1\",\r\n      \"metadata\": {\r\n        \"name\": \"default\",\r\n        \"selfLink\": \"/api/v1/namespaces/default\",\r\n        \"uid\": \"a4c47f1b-59dd-11e8-95c8-54e1ad486dd3\",\r\n        \"resourceVersion\": \"16\",\r\n        \"creationTimestamp\": \"2018-05-17T14:21:52Z\"\r\n      },\r\n      \"spec\": {\r\n        \"finalizers\": [\r\n          \"kubernetes\"\r\n        ]\r\n      },\r\n      \"status\": {\r\n        \"phase\": \"Active\"\r\n      }\r\n    },\r\n    {\r\n      \"kind\": \"Namespace\",\r\n      \"apiVersion\": \"v1\",\r\n      \"metadata\": {\r\n        \"name\": \"kube-public\",\r\n        \"selfLink\": \"/api/v1/namespaces/kube-public\",\r\n        \"uid\": \"a4c7ad9f-59dd-11e8-95c8-54e1ad486dd3\",\r\n        \"resourceVersion\": \"36\",\r\n        \"creationTimestamp\": \"2018-05-17T14:21:52Z\"\r\n      },\r\n      \"spec\": {\r\n        \"finalizers\": [\r\n          \"kubernetes\"\r\n        ]\r\n      },\r\n      \"status\": {\r\n        \"phase\": \"Active\"\r\n      }\r\n    },\r\n    {\r\n      \"kind\": \"Namespace\",\r\n      \"apiVersion\": \"v1\",\r\n      \"metadata\": {\r\n        \"name\": \"kube-system\",\r\n        \"selfLink\": \"/api/v1/namespaces/kube-system\",\r\n        \"uid\": \"a4c77664-59dd-11e8-95c8-54e1ad486dd3\",\r\n        \"resourceVersion\": \"34\",\r\n        \"creationTimestamp\": \"2018-05-17T14:21:52Z\"\r\n      },\r\n      \"spec\": {\r\n        \"finalizers\": [\r\n          \"kubernetes\"\r\n        ]\r\n      },\r\n      \"status\": {\r\n        \"phase\": \"Active\"\r\n      }\r\n    }\r\n  ]\r\n}\r\n\r\n```\r\n\r\nBEFORE\r\n```\r\n[deads@deads-02 kubernetes]$ go test k8s.io/kubernetes/pkg/api/testing -bench=Benchmark\r\ngoos: linux\r\ngoarch: amd64\r\npkg: k8s.io/kubernetes/pkg/api/testing\r\nBenchmarkPodConversion-8                                               \t  500000\t      2572 ns/op\r\nBenchmarkNodeConversion-8                                              \t 1000000\t      1761 ns/op\r\nBenchmarkReplicationControllerConversion-8                             \t  500000\t      3004 ns/op\r\nBenchmarkReplicationControllerListConversion-8                         \t  100000\t     14848 ns/op\r\nBenchmarkPodCopy-8                                                     \t 1000000\t      1437 ns/op\r\nBenchmarkNodeCopy-8                                                    \t 1000000\t      1733 ns/op\r\nBenchmarkReplicationControllerCopy-8                                   \t  500000\t      2332 ns/op\r\nBenchmarkPodDefaulting-8                                               \t 5000000\t       342 ns/op\r\nBenchmarkEncodeCodecProtobuf-8                                         \t  300000\t      3644 ns/op\r\nBenchmarkEncodeCodecFromInternalProtobuf-8                             \t  200000\t      5279 ns/op\r\nBenchmarkEncodeProtobufGeneratedMarshal-8                              \t  500000\t      2736 ns/op\r\nBenchmarkDecodeCodecToInternalProtobuf-8                               \t  200000\t      6998 ns/op\r\nBenchmarkDecodeIntoProtobuf-8                                          \t  300000\t      4011 ns/op\r\nBenchmarkEncodeCodec-8                                                 \t  100000\t     17979 ns/op\r\nBenchmarkEncodeCodecFromInternal-8                                     \t  100000\t     19209 ns/op\r\nBenchmarkEncodeJSONMarshal-8                                           \t  100000\t     19113 ns/op\r\nBenchmarkDecodeCodec-8                                                 \t   30000\t     37095 ns/op\r\nBenchmarkDecodeIntoExternalCodec-8                                     \t   50000\t     35739 ns/op\r\nBenchmarkDecodeIntoInternalCodec-8                                     \t   50000\t     37947 ns/op\r\nBenchmarkDecodeIntoJSON-8                                              \t   30000\t     49692 ns/op\r\nBenchmarkDecodeIntoJSONCodecGenConfigFast-8                            \t  100000\t     13865 ns/op\r\nBenchmarkDecodeIntoJSONCodecGenConfigCompatibleWithStandardLibrary-8   \t  100000\t     16051 ns/op\r\nBenchmarkToFromUnstructured-8                                          \t    3000\t    356192 ns/op\r\nBenchmarkToFromUnstructuredViaJSON-8                                   \t   10000\t    175606 ns/op\r\nPASS\r\n\r\n```\r\n\r\nAFTER\r\n```\r\n[deads@deads-02 kubernetes]$ go test k8s.io/kubernetes/pkg/api/testing -bench=Benchmark\r\ngoos: linux\r\ngoarch: amd64\r\npkg: k8s.io/kubernetes/pkg/api/testing\r\nBenchmarkPodConversion-8                                               \t  500000\t      2601 ns/op\r\nBenchmarkNodeConversion-8                                              \t 1000000\t      1783 ns/op\r\nBenchmarkReplicationControllerConversion-8                             \t  500000\t      3134 ns/op\r\nBenchmarkReplicationControllerListConversion-8                         \t  100000\t     16719 ns/op\r\nBenchmarkPodCopy-8                                                     \t 1000000\t      1450 ns/op\r\nBenchmarkNodeCopy-8                                                    \t 1000000\t      1664 ns/op\r\nBenchmarkReplicationControllerCopy-8                                   \t  500000\t      2441 ns/op\r\nBenchmarkPodDefaulting-8                                               \t 5000000\t       363 ns/op\r\nBenchmarkEncodeCodecProtobuf-8                                         \t  300000\t      3820 ns/op\r\nBenchmarkEncodeCodecFromInternalProtobuf-8                             \t  200000\t      5743 ns/op\r\nBenchmarkEncodeProtobufGeneratedMarshal-8                              \t  500000\t      2878 ns/op\r\nBenchmarkDecodeCodecToInternalProtobuf-8                               \t  200000\t      7500 ns/op\r\nBenchmarkDecodeIntoProtobuf-8                                          \t  300000\t      4217 ns/op\r\nBenchmarkEncodeCodec-8                                                 \t  100000\t     18871 ns/op\r\nBenchmarkEncodeCodecFromInternal-8                                     \t  100000\t     19575 ns/op\r\nBenchmarkEncodeJSONMarshal-8                                           \t  100000\t     19359 ns/op\r\nBenchmarkDecodeCodec-8                                                 \t   30000\t     36683 ns/op\r\nBenchmarkDecodeIntoExternalCodec-8                                     \t   50000\t     35289 ns/op\r\nBenchmarkDecodeIntoInternalCodec-8                                     \t   50000\t     37216 ns/op\r\nBenchmarkDecodeIntoJSON-8                                              \t   30000\t     50176 ns/op\r\nBenchmarkDecodeIntoJSONCodecGenConfigFast-8                            \t  100000\t     14181 ns/op\r\nBenchmarkDecodeIntoJSONCodecGenConfigCompatibleWithStandardLibrary-8   \t  100000\t     15932 ns/op\r\nBenchmarkToFromUnstructured-8                                          \t    3000\t    359906 ns/op\r\nBenchmarkToFromUnstructuredViaJSON-8                                   \t   10000\t    182426 ns/op\r\nPASS\r\nok  \tk8s.io/kubernetes/pkg/api/testing\t45.824s\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/390678252","html_url":"https://github.com/kubernetes/kubernetes/pull/63972#issuecomment-390678252","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/63972","id":390678252,"user":{"login":"k8s-ci-robot","id":20407524,"avatar_url":"https://avatars0.githubusercontent.com/u/20407524?v=4","gravatar_id":"","url":"https://api.github.com/users/k8s-ci-robot","html_url":"https://github.com/k8s-ci-robot","followers_url":"https://api.github.com/users/k8s-ci-robot/followers","following_url":"https://api.github.com/users/k8s-ci-robot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-ci-robot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-ci-robot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-ci-robot/subscriptions","organizations_url":"https://api.github.com/users/k8s-ci-robot/orgs","repos_url":"https://api.github.com/users/k8s-ci-robot/repos","events_url":"https://api.github.com/users/k8s-ci-robot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-ci-robot/received_events","type":"User","site_admin":false},"created_at":"2018-05-21T14:53:08Z","updated_at":"2018-05-21T14:53:08Z","author_association":"COLLABORATOR","body":"@deads2k: The following tests **failed**, say `/retest` to rerun them all:\n\nTest name | Commit | Details | Rerun command\n--- | --- | --- | ---\npull-kubernetes-e2e-kops-aws | 931943b7ebfa7e749cc2efd4594005cd36030f26 | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63972/pull-kubernetes-e2e-kops-aws/89168/) | `/test pull-kubernetes-e2e-kops-aws`\npull-kubernetes-bazel-test | b7dd2a736a0b9d021989cc5d911d4076529c52da | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63972/pull-kubernetes-bazel-test/45785/) | `/test pull-kubernetes-bazel-test`\npull-kubernetes-node-e2e | 303a1e202498ceb93f868248a87c8d1a6808c668 | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63972/pull-kubernetes-node-e2e/89863/) | `/test pull-kubernetes-node-e2e`\npull-kubernetes-verify | 303a1e202498ceb93f868248a87c8d1a6808c668 | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/63972/pull-kubernetes-verify/91887/) | `/test pull-kubernetes-verify`\n\n[Full PR test history](https://k8s-gubernator.appspot.com/pr/63972). [Your PR dashboard](https://k8s-gubernator.appspot.com/pr/deads2k). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes/kubernetes/issues?q=is:issue+is:open) when you hit one in your PR.\n\n<details>\n\nInstructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).\n</details>\n<!-- test report -->"}}
{"actor":{"display_login":"k8s-ci-robot"}}