{"action":"created","issue":{"url":"https://api.github.com/repos/openshift/origin/issues/21203","repository_url":"https://api.github.com/repos/openshift/origin","labels_url":"https://api.github.com/repos/openshift/origin/issues/21203/labels{/name}","comments_url":"https://api.github.com/repos/openshift/origin/issues/21203/comments","events_url":"https://api.github.com/repos/openshift/origin/issues/21203/events","html_url":"https://github.com/openshift/origin/pull/21203","id":368339411,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIxNTQwMzY4","number":21203,"title":"Redundantly validate network objects, in preparation for CRD migration","user":{"login":"danwinship","id":96040,"node_id":"MDQ6VXNlcjk2MDQw","avatar_url":"https://avatars0.githubusercontent.com/u/96040?v=4","gravatar_id":"","url":"https://api.github.com/users/danwinship","html_url":"https://github.com/danwinship","followers_url":"https://api.github.com/users/danwinship/followers","following_url":"https://api.github.com/users/danwinship/following{/other_user}","gists_url":"https://api.github.com/users/danwinship/gists{/gist_id}","starred_url":"https://api.github.com/users/danwinship/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danwinship/subscriptions","organizations_url":"https://api.github.com/users/danwinship/orgs","repos_url":"https://api.github.com/users/danwinship/repos","events_url":"https://api.github.com/users/danwinship/events{/privacy}","received_events_url":"https://api.github.com/users/danwinship/received_events","type":"User","site_admin":false},"labels":[{"id":223051294,"node_id":"MDU6TGFiZWwyMjMwNTEyOTQ=","url":"https://api.github.com/repos/openshift/origin/labels/approved","name":"approved","color":"0ffa16","default":false},{"id":223479084,"node_id":"MDU6TGFiZWwyMjM0NzkwODQ=","url":"https://api.github.com/repos/openshift/origin/labels/lgtm","name":"lgtm","color":"15dd18","default":false},{"id":640548394,"node_id":"MDU6TGFiZWw2NDA1NDgzOTQ=","url":"https://api.github.com/repos/openshift/origin/labels/size/L","name":"size/L","color":"ee9900","default":false}],"state":"open","locked":false,"assignee":{"login":"dcbw","id":10926354,"node_id":"MDQ6VXNlcjEwOTI2MzU0","avatar_url":"https://avatars2.githubusercontent.com/u/10926354?v=4","gravatar_id":"","url":"https://api.github.com/users/dcbw","html_url":"https://github.com/dcbw","followers_url":"https://api.github.com/users/dcbw/followers","following_url":"https://api.github.com/users/dcbw/following{/other_user}","gists_url":"https://api.github.com/users/dcbw/gists{/gist_id}","starred_url":"https://api.github.com/users/dcbw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcbw/subscriptions","organizations_url":"https://api.github.com/users/dcbw/orgs","repos_url":"https://api.github.com/users/dcbw/repos","events_url":"https://api.github.com/users/dcbw/events{/privacy}","received_events_url":"https://api.github.com/users/dcbw/received_events","type":"User","site_admin":false},"assignees":[{"login":"dcbw","id":10926354,"node_id":"MDQ6VXNlcjEwOTI2MzU0","avatar_url":"https://avatars2.githubusercontent.com/u/10926354?v=4","gravatar_id":"","url":"https://api.github.com/users/dcbw","html_url":"https://github.com/dcbw","followers_url":"https://api.github.com/users/dcbw/followers","following_url":"https://api.github.com/users/dcbw/following{/other_user}","gists_url":"https://api.github.com/users/dcbw/gists{/gist_id}","starred_url":"https://api.github.com/users/dcbw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcbw/subscriptions","organizations_url":"https://api.github.com/users/dcbw/orgs","repos_url":"https://api.github.com/users/dcbw/repos","events_url":"https://api.github.com/users/dcbw/events{/privacy}","received_events_url":"https://api.github.com/users/dcbw/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2018-10-09T18:29:26Z","updated_at":"2018-10-16T20:58:59Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/openshift/origin/pulls/21203","html_url":"https://github.com/openshift/origin/pull/21203","diff_url":"https://github.com/openshift/origin/pull/21203.diff","patch_url":"https://github.com/openshift/origin/pull/21203.patch"},"body":"When we switch to CRDs and an out-of-process controller, we will no longer have in-process validation at admission time, we won't be able to use validation webhooks because the network won't be up yet, and openapi validation only lets us valid syntax per-field, without considering semantics. So we need to deal with the possibility of slightly-invalid resources being present:\r\n\r\n- `ClusterNetwork` can be invalid in a bunch of ways (eg, clusterNetworkCIDR overlaps with serviceNetworkCIDR)\r\n- `HostSubnet` can be invalid if it has an empty `subnet` and no `assign-subnet` annotation\r\n\r\n`NetNamespace` and `EgressNetworkPolicy` can be more-or-less completely validated with CRD openapi validation so we don't have to double-check them.\r\n\r\nNote that this PR should have no effect when using the built-in network types/controller/apiserver, since it will just be revalidating resources that are already known to be valid."},"comment":{"url":"https://api.github.com/repos/openshift/origin/issues/comments/430398529","html_url":"https://github.com/openshift/origin/pull/21203#issuecomment-430398529","issue_url":"https://api.github.com/repos/openshift/origin/issues/21203","id":430398529,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMDM5ODUyOQ==","user":{"login":"dcbw","id":10926354,"node_id":"MDQ6VXNlcjEwOTI2MzU0","avatar_url":"https://avatars2.githubusercontent.com/u/10926354?v=4","gravatar_id":"","url":"https://api.github.com/users/dcbw","html_url":"https://github.com/dcbw","followers_url":"https://api.github.com/users/dcbw/followers","following_url":"https://api.github.com/users/dcbw/following{/other_user}","gists_url":"https://api.github.com/users/dcbw/gists{/gist_id}","starred_url":"https://api.github.com/users/dcbw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcbw/subscriptions","organizations_url":"https://api.github.com/users/dcbw/orgs","repos_url":"https://api.github.com/users/dcbw/repos","events_url":"https://api.github.com/users/dcbw/events{/privacy}","received_events_url":"https://api.github.com/users/dcbw/received_events","type":"User","site_admin":false},"created_at":"2018-10-16T20:58:59Z","updated_at":"2018-10-16T20:58:59Z","author_association":"MEMBER","body":"/retest"}}
{"actor":{"display_login":"dcbw"}}