{"action":"created","comment":{"url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/comments/230202511","pull_request_review_id":170888048,"id":230202511,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMDIwMjUxMQ==","diff_hunk":"@@ -238,7 +260,7 @@ func (a *Operator) requirementAndPermissionStatus(csv *v1alpha1.ClusterServiceVe\n \t\treturn false, nil, fmt.Errorf(\"could not cast install strategy as type %T\", strategyDetailsDeployment)\n \t}\n \n-\treqMet, reqStatuses := a.requirementStatus(strategyDetailsDeployment, csv.GetAllCRDDescriptions(), csv.GetOwnedAPIServiceDescriptions(), csv.GetRequiredAPIServiceDescriptions())\n+\treqMet, reqStatuses := a.requirementStatus(strategyDetailsDeployment, csv.GetAllCRDDescriptions(), csv.GetOwnedAPIServiceDescriptions(), csv.GetRequiredAPIServiceDescriptions(), csv.Spec.NativeAPIs)\n ","path":"pkg/controller/operators/olm/requirements.go","position":44,"original_position":44,"commit_id":"2cacdfb7d4e01e4a9243ded6cbd44bb4ae1460b4","original_commit_id":"2cacdfb7d4e01e4a9243ded6cbd44bb4ae1460b4","user":{"login":"jpeeler","id":834161,"node_id":"MDQ6VXNlcjgzNDE2MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/834161?v=4","gravatar_id":"","url":"https://api.github.com/users/jpeeler","html_url":"https://github.com/jpeeler","followers_url":"https://api.github.com/users/jpeeler/followers","following_url":"https://api.github.com/users/jpeeler/following{/other_user}","gists_url":"https://api.github.com/users/jpeeler/gists{/gist_id}","starred_url":"https://api.github.com/users/jpeeler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpeeler/subscriptions","organizations_url":"https://api.github.com/users/jpeeler/orgs","repos_url":"https://api.github.com/users/jpeeler/repos","events_url":"https://api.github.com/users/jpeeler/events{/privacy}","received_events_url":"https://api.github.com/users/jpeeler/received_events","type":"User","site_admin":false},"body":"Does the GUI ever make use of the previous getter methods? I'm just wondering if it's worth making one for the Native APIs to return an alphabetical listing (or deduplication) like the others.","created_at":"2018-11-01T21:17:54Z","updated_at":"2018-11-01T21:17:55Z","html_url":"https://github.com/operator-framework/operator-lifecycle-manager/pull/541#discussion_r230202511","pull_request_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/comments/230202511"},"html":{"href":"https://github.com/operator-framework/operator-lifecycle-manager/pull/541#discussion_r230202511"},"pull_request":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541"}}},"pull_request":{"url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541","id":226175702,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI2MTc1NzAy","html_url":"https://github.com/operator-framework/operator-lifecycle-manager/pull/541","diff_url":"https://github.com/operator-framework/operator-lifecycle-manager/pull/541.diff","patch_url":"https://github.com/operator-framework/operator-lifecycle-manager/pull/541.patch","issue_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues/541","number":541,"state":"open","locked":false,"title":"Verify Native APIs Present for ClusterServiceVersion","user":{"login":"alecmerdler","id":11700385,"node_id":"MDQ6VXNlcjExNzAwMzg1","avatar_url":"https://avatars2.githubusercontent.com/u/11700385?v=4","gravatar_id":"","url":"https://api.github.com/users/alecmerdler","html_url":"https://github.com/alecmerdler","followers_url":"https://api.github.com/users/alecmerdler/followers","following_url":"https://api.github.com/users/alecmerdler/following{/other_user}","gists_url":"https://api.github.com/users/alecmerdler/gists{/gist_id}","starred_url":"https://api.github.com/users/alecmerdler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alecmerdler/subscriptions","organizations_url":"https://api.github.com/users/alecmerdler/orgs","repos_url":"https://api.github.com/users/alecmerdler/repos","events_url":"https://api.github.com/users/alecmerdler/events{/privacy}","received_events_url":"https://api.github.com/users/alecmerdler/received_events","type":"User","site_admin":false},"body":"### Description\r\n\r\nAdds the ability to enforce that certain \"native\" APIs exist in a Kubernetes cluster in order to install an Operator using a `ClusterServiceVersion`. This is a more complete solution than depending on some \"version\" of Kubernetes, because there are so many flavors and distributions that may or may not contain the APIs consumed by the Operator.\r\n\r\n### Changes\r\n\r\n- Adds `spec.nativeAPIs` field to `ClusterServiceVersion` (array of `GroupVersionKinds`)\r\n- Verifies required native APIs are present using basic discovery as part of CSV control loop\r\n- Writes out to `requirementStatus` just like CRDs and apiservices\r\n\r\nAddresses https://jira.coreos.com/browse/ALM-666","created_at":"2018-10-26T17:44:42Z","updated_at":"2018-11-01T21:17:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c7a00f6275d4dec3d8ee64c8abbf3174a613a23d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"ecordell","id":58055,"node_id":"MDQ6VXNlcjU4MDU1","avatar_url":"https://avatars3.githubusercontent.com/u/58055?v=4","gravatar_id":"","url":"https://api.github.com/users/ecordell","html_url":"https://github.com/ecordell","followers_url":"https://api.github.com/users/ecordell/followers","following_url":"https://api.github.com/users/ecordell/following{/other_user}","gists_url":"https://api.github.com/users/ecordell/gists{/gist_id}","starred_url":"https://api.github.com/users/ecordell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ecordell/subscriptions","organizations_url":"https://api.github.com/users/ecordell/orgs","repos_url":"https://api.github.com/users/ecordell/repos","events_url":"https://api.github.com/users/ecordell/events{/privacy}","received_events_url":"https://api.github.com/users/ecordell/received_events","type":"User","site_admin":false},{"login":"njhale","id":4175918,"node_id":"MDQ6VXNlcjQxNzU5MTg=","avatar_url":"https://avatars1.githubusercontent.com/u/4175918?v=4","gravatar_id":"","url":"https://api.github.com/users/njhale","html_url":"https://github.com/njhale","followers_url":"https://api.github.com/users/njhale/followers","following_url":"https://api.github.com/users/njhale/following{/other_user}","gists_url":"https://api.github.com/users/njhale/gists{/gist_id}","starred_url":"https://api.github.com/users/njhale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/njhale/subscriptions","organizations_url":"https://api.github.com/users/njhale/orgs","repos_url":"https://api.github.com/users/njhale/repos","events_url":"https://api.github.com/users/njhale/events{/privacy}","received_events_url":"https://api.github.com/users/njhale/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1061103982,"node_id":"MDU6TGFiZWwxMDYxMTAzOTgy","url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/labels/size/L","name":"size/L","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541/commits","review_comments_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541/comments","review_comment_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/comments{/number}","comments_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues/541/comments","statuses_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/statuses/2cacdfb7d4e01e4a9243ded6cbd44bb4ae1460b4","head":{"label":"alecmerdler:ALM-666","ref":"ALM-666","sha":"2cacdfb7d4e01e4a9243ded6cbd44bb4ae1460b4","user":{"login":"alecmerdler","id":11700385,"node_id":"MDQ6VXNlcjExNzAwMzg1","avatar_url":"https://avatars2.githubusercontent.com/u/11700385?v=4","gravatar_id":"","url":"https://api.github.com/users/alecmerdler","html_url":"https://github.com/alecmerdler","followers_url":"https://api.github.com/users/alecmerdler/followers","following_url":"https://api.github.com/users/alecmerdler/following{/other_user}","gists_url":"https://api.github.com/users/alecmerdler/gists{/gist_id}","starred_url":"https://api.github.com/users/alecmerdler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alecmerdler/subscriptions","organizations_url":"https://api.github.com/users/alecmerdler/orgs","repos_url":"https://api.github.com/users/alecmerdler/repos","events_url":"https://api.github.com/users/alecmerdler/events{/privacy}","received_events_url":"https://api.github.com/users/alecmerdler/received_events","type":"User","site_admin":false},"repo":{"id":131750145,"node_id":"MDEwOlJlcG9zaXRvcnkxMzE3NTAxNDU=","name":"operator-lifecycle-manager","full_name":"alecmerdler/operator-lifecycle-manager","private":false,"owner":{"login":"alecmerdler","id":11700385,"node_id":"MDQ6VXNlcjExNzAwMzg1","avatar_url":"https://avatars2.githubusercontent.com/u/11700385?v=4","gravatar_id":"","url":"https://api.github.com/users/alecmerdler","html_url":"https://github.com/alecmerdler","followers_url":"https://api.github.com/users/alecmerdler/followers","following_url":"https://api.github.com/users/alecmerdler/following{/other_user}","gists_url":"https://api.github.com/users/alecmerdler/gists{/gist_id}","starred_url":"https://api.github.com/users/alecmerdler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alecmerdler/subscriptions","organizations_url":"https://api.github.com/users/alecmerdler/orgs","repos_url":"https://api.github.com/users/alecmerdler/repos","events_url":"https://api.github.com/users/alecmerdler/events{/privacy}","received_events_url":"https://api.github.com/users/alecmerdler/received_events","type":"User","site_admin":false},"html_url":"https://github.com/alecmerdler/operator-lifecycle-manager","description":"Kubernetes Operator Lifecycle Manager","fork":true,"url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager","forks_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/forks","keys_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/teams","hooks_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/hooks","issue_events_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/issues/events{/number}","events_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/events","assignees_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/assignees{/user}","branches_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/branches{/branch}","tags_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/tags","blobs_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/git/refs{/sha}","trees_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/statuses/{sha}","languages_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/languages","stargazers_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/stargazers","contributors_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/contributors","subscribers_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/subscribers","subscription_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/subscription","commits_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/commits{/sha}","git_commits_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/git/commits{/sha}","comments_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/comments{/number}","issue_comment_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/issues/comments{/number}","contents_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/contents/{+path}","compare_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/merges","archive_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/downloads","issues_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/issues{/number}","pulls_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/pulls{/number}","milestones_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/milestones{/number}","notifications_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/labels{/name}","releases_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/releases{/id}","deployments_url":"https://api.github.com/repos/alecmerdler/operator-lifecycle-manager/deployments","created_at":"2018-05-01T18:45:47Z","updated_at":"2018-10-31T19:13:30Z","pushed_at":"2018-10-31T19:13:28Z","git_url":"git://github.com/alecmerdler/operator-lifecycle-manager.git","ssh_url":"git@github.com:alecmerdler/operator-lifecycle-manager.git","clone_url":"https://github.com/alecmerdler/operator-lifecycle-manager.git","svn_url":"https://github.com/alecmerdler/operator-lifecycle-manager","homepage":"","size":12034,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"operator-framework:master","ref":"master","sha":"d7ee48190073e8d8908a151b29584f5dbedd0c87","user":{"login":"operator-framework","id":38202270,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM4MjAyMjcw","avatar_url":"https://avatars0.githubusercontent.com/u/38202270?v=4","gravatar_id":"","url":"https://api.github.com/users/operator-framework","html_url":"https://github.com/operator-framework","followers_url":"https://api.github.com/users/operator-framework/followers","following_url":"https://api.github.com/users/operator-framework/following{/other_user}","gists_url":"https://api.github.com/users/operator-framework/gists{/gist_id}","starred_url":"https://api.github.com/users/operator-framework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/operator-framework/subscriptions","organizations_url":"https://api.github.com/users/operator-framework/orgs","repos_url":"https://api.github.com/users/operator-framework/repos","events_url":"https://api.github.com/users/operator-framework/events{/privacy}","received_events_url":"https://api.github.com/users/operator-framework/received_events","type":"Organization","site_admin":false},"repo":{"id":100052573,"node_id":"MDEwOlJlcG9zaXRvcnkxMDAwNTI1NzM=","name":"operator-lifecycle-manager","full_name":"operator-framework/operator-lifecycle-manager","private":false,"owner":{"login":"operator-framework","id":38202270,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM4MjAyMjcw","avatar_url":"https://avatars0.githubusercontent.com/u/38202270?v=4","gravatar_id":"","url":"https://api.github.com/users/operator-framework","html_url":"https://github.com/operator-framework","followers_url":"https://api.github.com/users/operator-framework/followers","following_url":"https://api.github.com/users/operator-framework/following{/other_user}","gists_url":"https://api.github.com/users/operator-framework/gists{/gist_id}","starred_url":"https://api.github.com/users/operator-framework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/operator-framework/subscriptions","organizations_url":"https://api.github.com/users/operator-framework/orgs","repos_url":"https://api.github.com/users/operator-framework/repos","events_url":"https://api.github.com/users/operator-framework/events{/privacy}","received_events_url":"https://api.github.com/users/operator-framework/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/operator-framework/operator-lifecycle-manager","description":"A management framework for extending Kubernetes with Operators","fork":false,"url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager","forks_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/forks","keys_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/keys{/key_id}","collaborators_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/teams","hooks_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/hooks","issue_events_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues/events{/number}","events_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/events","assignees_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/assignees{/user}","branches_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/branches{/branch}","tags_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/tags","blobs_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/git/refs{/sha}","trees_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/git/trees{/sha}","statuses_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/statuses/{sha}","languages_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/languages","stargazers_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/stargazers","contributors_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/contributors","subscribers_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/subscribers","subscription_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/subscription","commits_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/commits{/sha}","git_commits_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/git/commits{/sha}","comments_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/comments{/number}","issue_comment_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues/comments{/number}","contents_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/contents/{+path}","compare_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/compare/{base}...{head}","merges_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/merges","archive_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/downloads","issues_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues{/number}","pulls_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls{/number}","milestones_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/milestones{/number}","notifications_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/labels{/name}","releases_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/releases{/id}","deployments_url":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/deployments","created_at":"2017-08-11T16:47:06Z","updated_at":"2018-10-31T20:56:00Z","pushed_at":"2018-11-01T16:05:14Z","git_url":"git://github.com/operator-framework/operator-lifecycle-manager.git","ssh_url":"git@github.com:operator-framework/operator-lifecycle-manager.git","clone_url":"https://github.com/operator-framework/operator-lifecycle-manager.git","svn_url":"https://github.com/operator-framework/operator-lifecycle-manager","homepage":"","size":11965,"stargazers_count":171,"watchers_count":171,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":60,"mirror_url":null,"archived":false,"open_issues_count":19,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":60,"open_issues":19,"watchers":171,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541"},"html":{"href":"https://github.com/operator-framework/operator-lifecycle-manager/pull/541"},"issue":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues/541"},"comments":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/issues/541/comments"},"review_comments":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541/comments"},"review_comment":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/pulls/541/commits"},"statuses":{"href":"https://api.github.com/repos/operator-framework/operator-lifecycle-manager/statuses/2cacdfb7d4e01e4a9243ded6cbd44bb4ae1460b4"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"jpeeler"}}