{"action":"created","comment":{"url":"https://api.github.com/repos/projectcalico/calico/pulls/comments/179836380","pull_request_review_id":110157771,"id":179836380,"diff_hunk":"@@ -0,0 +1,55 @@\n+06 April 2018\n+\n+#### Support for OpenStack\n+Calico v3.1 reintroduces support for OpenStack. Existing users can upgrade their Calico OpenStack clusters to\n+v3.1 by [following the documented procedure](https://docs.projectcalico.org/v3.1/getting-started/openstack/upgrade/).\n+\n+#### Introducing GlobalNetworkSets\n+Calico now supports a new resource type: GlobalNetworkSet. A GlobalNetworkSet contains a set of CIDRs with associated labels, which can\n+be matched by global network policies. This allows for rules to refer to external networks, possibly consisting of thousands of CIDRs.\n+GlobalNetworkSets allow you to write network policies that are more portable across clusters by introducing a label-based abstraction\n+on top of network CIDRs. To learn more, see the [GlobalNetworkSet resource definition](https://docs.projectcalico.org/v3.1/reference/calicoctl/resources/globalnetworkset).\n+\n+#### Beta support for IPVS kube-proxy\n+Calico v3.1 moves support for the IPVS kube-proxy from alpha to beta with support for pod ingress, pod egress, and host endpoint\n+network policy. The IPVS kube-proxy is itself still beta, but promises greater scale and performance compared to the existing iptables proxy.\n+\n+#### Kubernetes IPv6 support\n+Calico v3.1 includes fixes which better support running an IPv6-based Kubernetes cluster. In Calico v3.1, you can now use the Kubernetes\n+API datastore in IPv6 mode. Additionally, Calico now generates a /48 unique local address (ULA) prefix when no IPv6 pool is specified rather than using\n+a fixed CIDR. This prevents multiple Calico clusters from sharing the same IPv6 address space. Check out the documentation\n+on enabling IPv6 support for more information.\n+\n+#### HostEndpoint support for Kubernetes API datastore\n+Calico now supports configuration of host endpoints when using the Kubernetes API datastore. This allows you to seamlessly apply\n+network policy directly to Kubernetes host machines and Kubernetes pods alike using Calico global network policies.\n+\n+#### Other changes\n+- The install-cni container now maintains the original mode on certificates copied from Kubernetes secrets. [cni-plugin #481](https://github.com/projectcalico/cni-plugin/pull/481) (@caseydavenport)\n+- The install-cni container now writes the calico-kubeconfig file with mode 600 by default. It can be configured by setting the KUBECONFIG_MODE option. [cni-plugin #481](https://github.com/projectcalico/cni-plugin/pull/481) (@caseydavenport)\n+- The Calico CNI plugin by default expects the /var/lib/calico/nodename file to be created by calico/node. To disable this feature, set `nodename_file_optional: true` in your CNI network configuration. [cni-plugin #480](https://github.com/projectcalico/cni-plugin/pull/480) (@caseydavenport)\n+- Fixes a bug where IPs could be assigned from disabled IP pools. [libcalico-go #806](https://github.com/projectcalico/libcalico-go/pull/806) (@ozdanborne)\n+- Fixes a bug where profiles were periodically and unnecessarily reprogrammed by kube-controllers. [libcalico-go #805](https://github.com/projectcalico/libcalico-go/pull/805) (@caseydavenport)\n+- Fixes a bug where nodes were periodically and unnecessarily processed by kube-controllers. [kube-controllers #216](https://github.com/projectcalico/kube-controllers/pull/216) (@caseydavenport)\n+- Closes a number of race conditions and failure scenarios in IPAM block allocation and releasing. [libcalico-go #785](https://github.com/projectcalico/libcalico-go/pull/785) (@caseydavenport)\n+- Improves log output around IPAM block allocation and releasing. [libcalico-go #785](https://github.com/projectcalico/libcalico-go/pull/785) (@caseydavenport)\n+- The self-hosted Kubernetes manifests now set mode 400 for TLS secrets by default [calico #1725](https://github.com/projectcalico/calico/pull/1725) (@caseydavenport)\n+- Fixes a rare bug where a node could in some circumstances advertise /26 blocks that it didn't own [calico #1712](https://github.com/projectcalico/calico/pull/1712) (@caseydavenport)\n+- Use networking.k8s.io api in place of deprecated extensions/v1beta1. [calico #1614](https://github.com/projectcalico/calico/pull/1614) (@bcreane)\n+- Fixes an interaction between failsafe inbound/outbound ports and do-not-track policy that resulted in failsafe ports being blocked if do-not-track policy was added. [felix #1718](https://github.com/projectcalico/felix/pull/1718) (@fasaxc)\n+- Fix bug in icmp validation where ipVersion was required for all icmp rules. [calicoctl #1814](https://github.com/projectcalico/calicoctl/pull/1814) (@ozdanborne)","path":"_includes/v3.1/release-notes/v3.1.0-release-notes.md","position":40,"original_position":40,"commit_id":"852f54a2924fd2b7266aeef0bb8050594ebd1311","original_commit_id":"2ee7f675484b0ba184833cff271abf1037523d4b","user":{"login":"neiljerram","id":2089263,"avatar_url":"https://avatars1.githubusercontent.com/u/2089263?v=4","gravatar_id":"","url":"https://api.github.com/users/neiljerram","html_url":"https://github.com/neiljerram","followers_url":"https://api.github.com/users/neiljerram/followers","following_url":"https://api.github.com/users/neiljerram/following{/other_user}","gists_url":"https://api.github.com/users/neiljerram/gists{/gist_id}","starred_url":"https://api.github.com/users/neiljerram/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neiljerram/subscriptions","organizations_url":"https://api.github.com/users/neiljerram/orgs","repos_url":"https://api.github.com/users/neiljerram/repos","events_url":"https://api.github.com/users/neiljerram/events{/privacy}","received_events_url":"https://api.github.com/users/neiljerram/received_events","type":"User","site_admin":false},"body":"'Fix' or 'Fixes' ?  My preference would be 'Fix', but we should at least be consistent.","created_at":"2018-04-06T18:14:32Z","updated_at":"2018-04-06T18:16:12Z","html_url":"https://github.com/projectcalico/calico/pull/1852#discussion_r179836380","pull_request_url":"https://api.github.com/repos/projectcalico/calico/pulls/1852","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/comments/179836380"},"html":{"href":"https://github.com/projectcalico/calico/pull/1852#discussion_r179836380"},"pull_request":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/1852"}}},"pull_request":{"url":"https://api.github.com/repos/projectcalico/calico/pulls/1852","id":180015545,"html_url":"https://github.com/projectcalico/calico/pull/1852","diff_url":"https://github.com/projectcalico/calico/pull/1852.diff","patch_url":"https://github.com/projectcalico/calico/pull/1852.patch","issue_url":"https://api.github.com/repos/projectcalico/calico/issues/1852","number":1852,"state":"open","locked":false,"title":"Add versions for v3.1.0","user":{"login":"caseydavenport","id":1944093,"avatar_url":"https://avatars3.githubusercontent.com/u/1944093?v=4","gravatar_id":"","url":"https://api.github.com/users/caseydavenport","html_url":"https://github.com/caseydavenport","followers_url":"https://api.github.com/users/caseydavenport/followers","following_url":"https://api.github.com/users/caseydavenport/following{/other_user}","gists_url":"https://api.github.com/users/caseydavenport/gists{/gist_id}","starred_url":"https://api.github.com/users/caseydavenport/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caseydavenport/subscriptions","organizations_url":"https://api.github.com/users/caseydavenport/orgs","repos_url":"https://api.github.com/users/caseydavenport/repos","events_url":"https://api.github.com/users/caseydavenport/events{/privacy}","received_events_url":"https://api.github.com/users/caseydavenport/received_events","type":"User","site_admin":false},"body":"## Description\r\n\r\n<!-- A few sentences describing the overall goals of the pull request's commits.\r\nPlease include\r\n- the type of fix - (e.g. bug fix, new feature, documentation)\r\n- some details on _why_ this PR should be merged\r\n- the details of the testing you've done on it (both manual and automated)\r\n- which components are affected by this PR\r\n- links to issues that this PR addresses\r\n-->\r\n\r\n\r\n\r\n## Todos\r\n\r\n- [ ] Tests\r\n- [ ] Documentation\r\n- [ ] Release note\r\n\r\n## Release Note\r\n\r\n<!-- Writing a release note:\r\n- By default, no release note action is required.\r\n- If you're unsure whether or not your PR needs a note, ask your reviewer for guidance.\r\n- If this PR requires a release note, update the block below to include a concise note describing\r\n  the change and any important impacts this PR may have.\r\n-->\r\n\r\n```release-note\r\nNone required\r\n```\r\n","created_at":"2018-04-06T18:01:14Z","updated_at":"2018-04-06T18:16:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8a3be5a831ac25211b1b34f252cab5376797f097","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/projectcalico/calico/pulls/1852/commits","review_comments_url":"https://api.github.com/repos/projectcalico/calico/pulls/1852/comments","review_comment_url":"https://api.github.com/repos/projectcalico/calico/pulls/comments{/number}","comments_url":"https://api.github.com/repos/projectcalico/calico/issues/1852/comments","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/852f54a2924fd2b7266aeef0bb8050594ebd1311","head":{"label":"caseydavenport:versions-for-v3.1.0","ref":"versions-for-v3.1.0","sha":"852f54a2924fd2b7266aeef0bb8050594ebd1311","user":{"login":"caseydavenport","id":1944093,"avatar_url":"https://avatars3.githubusercontent.com/u/1944093?v=4","gravatar_id":"","url":"https://api.github.com/users/caseydavenport","html_url":"https://github.com/caseydavenport","followers_url":"https://api.github.com/users/caseydavenport/followers","following_url":"https://api.github.com/users/caseydavenport/following{/other_user}","gists_url":"https://api.github.com/users/caseydavenport/gists{/gist_id}","starred_url":"https://api.github.com/users/caseydavenport/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caseydavenport/subscriptions","organizations_url":"https://api.github.com/users/caseydavenport/orgs","repos_url":"https://api.github.com/users/caseydavenport/repos","events_url":"https://api.github.com/users/caseydavenport/events{/privacy}","received_events_url":"https://api.github.com/users/caseydavenport/received_events","type":"User","site_admin":false},"repo":{"id":70421342,"name":"calico","full_name":"caseydavenport/calico","owner":{"login":"caseydavenport","id":1944093,"avatar_url":"https://avatars3.githubusercontent.com/u/1944093?v=4","gravatar_id":"","url":"https://api.github.com/users/caseydavenport","html_url":"https://github.com/caseydavenport","followers_url":"https://api.github.com/users/caseydavenport/followers","following_url":"https://api.github.com/users/caseydavenport/following{/other_user}","gists_url":"https://api.github.com/users/caseydavenport/gists{/gist_id}","starred_url":"https://api.github.com/users/caseydavenport/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caseydavenport/subscriptions","organizations_url":"https://api.github.com/users/caseydavenport/orgs","repos_url":"https://api.github.com/users/caseydavenport/repos","events_url":"https://api.github.com/users/caseydavenport/events{/privacy}","received_events_url":"https://api.github.com/users/caseydavenport/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/caseydavenport/calico","description":"Documentation and guides for Calico","fork":true,"url":"https://api.github.com/repos/caseydavenport/calico","forks_url":"https://api.github.com/repos/caseydavenport/calico/forks","keys_url":"https://api.github.com/repos/caseydavenport/calico/keys{/key_id}","collaborators_url":"https://api.github.com/repos/caseydavenport/calico/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/caseydavenport/calico/teams","hooks_url":"https://api.github.com/repos/caseydavenport/calico/hooks","issue_events_url":"https://api.github.com/repos/caseydavenport/calico/issues/events{/number}","events_url":"https://api.github.com/repos/caseydavenport/calico/events","assignees_url":"https://api.github.com/repos/caseydavenport/calico/assignees{/user}","branches_url":"https://api.github.com/repos/caseydavenport/calico/branches{/branch}","tags_url":"https://api.github.com/repos/caseydavenport/calico/tags","blobs_url":"https://api.github.com/repos/caseydavenport/calico/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/caseydavenport/calico/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/caseydavenport/calico/git/refs{/sha}","trees_url":"https://api.github.com/repos/caseydavenport/calico/git/trees{/sha}","statuses_url":"https://api.github.com/repos/caseydavenport/calico/statuses/{sha}","languages_url":"https://api.github.com/repos/caseydavenport/calico/languages","stargazers_url":"https://api.github.com/repos/caseydavenport/calico/stargazers","contributors_url":"https://api.github.com/repos/caseydavenport/calico/contributors","subscribers_url":"https://api.github.com/repos/caseydavenport/calico/subscribers","subscription_url":"https://api.github.com/repos/caseydavenport/calico/subscription","commits_url":"https://api.github.com/repos/caseydavenport/calico/commits{/sha}","git_commits_url":"https://api.github.com/repos/caseydavenport/calico/git/commits{/sha}","comments_url":"https://api.github.com/repos/caseydavenport/calico/comments{/number}","issue_comment_url":"https://api.github.com/repos/caseydavenport/calico/issues/comments{/number}","contents_url":"https://api.github.com/repos/caseydavenport/calico/contents/{+path}","compare_url":"https://api.github.com/repos/caseydavenport/calico/compare/{base}...{head}","merges_url":"https://api.github.com/repos/caseydavenport/calico/merges","archive_url":"https://api.github.com/repos/caseydavenport/calico/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/caseydavenport/calico/downloads","issues_url":"https://api.github.com/repos/caseydavenport/calico/issues{/number}","pulls_url":"https://api.github.com/repos/caseydavenport/calico/pulls{/number}","milestones_url":"https://api.github.com/repos/caseydavenport/calico/milestones{/number}","notifications_url":"https://api.github.com/repos/caseydavenport/calico/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/caseydavenport/calico/labels{/name}","releases_url":"https://api.github.com/repos/caseydavenport/calico/releases{/id}","deployments_url":"https://api.github.com/repos/caseydavenport/calico/deployments","created_at":"2016-10-09T18:07:04Z","updated_at":"2018-02-20T14:25:30Z","pushed_at":"2018-04-06T18:14:46Z","git_url":"git://github.com/caseydavenport/calico.git","ssh_url":"git@github.com:caseydavenport/calico.git","clone_url":"https://github.com/caseydavenport/calico.git","svn_url":"https://github.com/caseydavenport/calico","homepage":null,"size":21176,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"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"},"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"projectcalico:release-v3.1","ref":"release-v3.1","sha":"f6b289b80c1185d62f910944f01f7f964d8344be","user":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars3.githubusercontent.com/u/12304728?v=4","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"repo":{"id":63882194,"name":"calico","full_name":"projectcalico/calico","owner":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars3.githubusercontent.com/u/12304728?v=4","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/projectcalico/calico","description":"Cloud native application connectivity and network policy","fork":false,"url":"https://api.github.com/repos/projectcalico/calico","forks_url":"https://api.github.com/repos/projectcalico/calico/forks","keys_url":"https://api.github.com/repos/projectcalico/calico/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectcalico/calico/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectcalico/calico/teams","hooks_url":"https://api.github.com/repos/projectcalico/calico/hooks","issue_events_url":"https://api.github.com/repos/projectcalico/calico/issues/events{/number}","events_url":"https://api.github.com/repos/projectcalico/calico/events","assignees_url":"https://api.github.com/repos/projectcalico/calico/assignees{/user}","branches_url":"https://api.github.com/repos/projectcalico/calico/branches{/branch}","tags_url":"https://api.github.com/repos/projectcalico/calico/tags","blobs_url":"https://api.github.com/repos/projectcalico/calico/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectcalico/calico/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectcalico/calico/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectcalico/calico/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/{sha}","languages_url":"https://api.github.com/repos/projectcalico/calico/languages","stargazers_url":"https://api.github.com/repos/projectcalico/calico/stargazers","contributors_url":"https://api.github.com/repos/projectcalico/calico/contributors","subscribers_url":"https://api.github.com/repos/projectcalico/calico/subscribers","subscription_url":"https://api.github.com/repos/projectcalico/calico/subscription","commits_url":"https://api.github.com/repos/projectcalico/calico/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectcalico/calico/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectcalico/calico/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectcalico/calico/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectcalico/calico/contents/{+path}","compare_url":"https://api.github.com/repos/projectcalico/calico/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectcalico/calico/merges","archive_url":"https://api.github.com/repos/projectcalico/calico/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectcalico/calico/downloads","issues_url":"https://api.github.com/repos/projectcalico/calico/issues{/number}","pulls_url":"https://api.github.com/repos/projectcalico/calico/pulls{/number}","milestones_url":"https://api.github.com/repos/projectcalico/calico/milestones{/number}","notifications_url":"https://api.github.com/repos/projectcalico/calico/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectcalico/calico/labels{/name}","releases_url":"https://api.github.com/repos/projectcalico/calico/releases{/id}","deployments_url":"https://api.github.com/repos/projectcalico/calico/deployments","created_at":"2016-07-21T15:45:54Z","updated_at":"2018-04-05T23:02:31Z","pushed_at":"2018-04-06T18:14:47Z","git_url":"git://github.com/projectcalico/calico.git","ssh_url":"git@github.com:projectcalico/calico.git","clone_url":"https://github.com/projectcalico/calico.git","svn_url":"https://github.com/projectcalico/calico","homepage":"http://docs.projectcalico.org","size":21445,"stargazers_count":437,"watchers_count":437,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":195,"mirror_url":null,"archived":false,"open_issues_count":161,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":195,"open_issues":161,"watchers":437,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/1852"},"html":{"href":"https://github.com/projectcalico/calico/pull/1852"},"issue":{"href":"https://api.github.com/repos/projectcalico/calico/issues/1852"},"comments":{"href":"https://api.github.com/repos/projectcalico/calico/issues/1852/comments"},"review_comments":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/1852/comments"},"review_comment":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/1852/commits"},"statuses":{"href":"https://api.github.com/repos/projectcalico/calico/statuses/852f54a2924fd2b7266aeef0bb8050594ebd1311"}},"author_association":"OWNER"}}
{"actor":{"display_login":"neiljerram"}}