{"action":"opened","number":1863,"pull_request":{"url":"https://api.github.com/repos/pyupio/safety-db/pulls/1863","id":99450864,"html_url":"https://github.com/pyupio/safety-db/pull/1863","diff_url":"https://github.com/pyupio/safety-db/pull/1863.diff","patch_url":"https://github.com/pyupio/safety-db/pull/1863.patch","issue_url":"https://api.github.com/repos/pyupio/safety-db/issues/1863","number":1863,"state":"open","locked":false,"title":"Changelog patroni version 1.0","user":{"login":"pyup-vuln-bot","id":22832786,"avatar_url":"https://avatars.githubusercontent.com/u/22832786?v=3","gravatar_id":"","url":"https://api.github.com/users/pyup-vuln-bot","html_url":"https://github.com/pyup-vuln-bot","followers_url":"https://api.github.com/users/pyup-vuln-bot/followers","following_url":"https://api.github.com/users/pyup-vuln-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-vuln-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-vuln-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-vuln-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-vuln-bot/orgs","repos_url":"https://api.github.com/users/pyup-vuln-bot/repos","events_url":"https://api.github.com/users/pyup-vuln-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-vuln-bot/received_events","type":"User","site_admin":false},"body":"Keywords: security\n\n> -----------\n> \n> This release introduces the global dynamic configuration that allows dynamic changes of the PostgreSQL and Patroni configuration parameters for the entire HA cluster. It also delivers numerous bugfixes.\n> \n> **Upgrade notice**\n> \n> When upgrading from v0.90 or below, always upgrade all replicas before the master. Since we don't store replication credentials in DCS anymore, an old replica won't be able to connect to the new master.\n> \n> **Dynamic Configuration**\n> \n> - Implement the dynamic global configuration (Alexander Kukushkin)\n> \n> Introduce new REST API endpoint /config to provide PostgreSQL and Patroni configuration parameters that should be set globally for the entire HA cluster (master and all the replicas). Those parameters are set in DCS and in many cases can be applied without disrupting PostgreSQL or Patroni. Patroni sets a special flag called \"pending restart\" visible via the API when some of the values require the PostgreSQL restart. In that case, restart should be issued manually via the API.\n> \n> Patroni SIGHUP or POST to /reload will make it re-read the configuration file.\n> \n> See the :ref:`dynamic configuration <dynamic_configuration>`  for the details on which parameters can be changed and the order of processing difference configuration sources.\n> \n> The configuration file format *has changed* since the v0.90. Patroni is still compatible with the old configuration files, but in order to take advantage of the bootstrap parameters one needs to change it. Users are encourage to update them by referring to the :ref:`dynamic configuraton documentation page <dynamic_configuration>`.\n> \n> **More flexible configuration***\n> \n> - Make postgresql configuration and database name Patroni connects to configurable (Misja Hoebe)\n> \n> Introduce `database` and `config_base_name` configuration parameters. Among others, it makes possible to run Patroni with PipelineDB and other PostgreSQL forks.\n> \n> - Implement possibility to configure some Patroni configuration parameters via environment (Alexander)\n> \n> Those include the scope, the node name and the namespace, as well as the secrets and makes it easier to run Patroni in a dynamic environment, i.e. Kubernetes  Please, refer to the :ref:`supported environment variables <environment>` for further details.\n> \n> - Update the built-in Patroni docker container  to take advantage of environment-based configuration (Feike Steenbergen).\n> \n> - Add Zookeeper support to Patroni docker image (Alexander)\n> \n> - Split the Zookeeper and Exhibitor configuration options (Alexander)\n> \n> - Make patronictl reuse the code from Patroni to read configuration (Alexander)\n> \n> This allows patronictl to take advantage of environment-based configuration.\n> \n> - Set application name to node name in primary_conninfo (Alexander)\n> \n> This simplifies identification and configuration of synchronous replication for a given node.\n> \n> **Stability, security and usability improvements**\n> \n> - Reset sysid and do not call pg_controldata when restore of backup in progress (Alexander)\n> \n> This change reduces the amount of noise generated by Patroni API health checks during the lengthy initialization of this node from the backup.\n> \n> - Fix a bunch of pg_rewind corner-cases (Alexander)\n> \n> Avoid running pg_rewind if the source cluster is not the master.\n> \n> In addition, avoid removing the data directory on an unsuccessful rewind, unless the new parameter *remove_data_directory_on_rewind_failure* is set to true. By default it is false.\n> \n> - Remove passwords from the replication connection string in DCS (Alexander)\n> \n> Previously, Patroni always used the replication credentials from the Postgres URL in DCS. That is now changed to take the credentials from the patroni configuration. The secrets (replication username and password) and no longer exposed in DCS.\n> \n> - Fix the asynchronous machinery around the demote call (Alexander)\n> \n> Demote now runs totally asynchronously without blocking the DCS interactions.\n> \n> - Make patronictl always send the authorization header if it is configured (Alexander)\n> \n> This allows patronictl to issue \"protected\" requests, i.e. restart or reinitialize, when Patroni is configured to require authorization on those.\n> \n> - Handle the SystemExit exception correctly (Alexander)\n> \n> Avoids the issues of Patroni not stopping properly when receiving the SIGTERM\n> \n> - Sample haproxy templates for confd (Alexander)\n> \n> Generates and dynamically changes haproxy configuration from the patroni state in the DCS using confide\n> \n> - Improve and restructure the documentation to make it more friendly to the new users (Lauri Apple)\n> \n> - API must report role=master during pg_ctl stop (Alexander)\n> \n> Makes the callback calls more reliable, particularly in the cluster stop case. In addition, introduce the `pg_ctl_timeout` option to set the timeout for the start, stop and restart calls via the `pg_ctl`.\n> \n> - Fix the retry logic in etcd (Alexander)\n> \n> Make retries more predictable and robust.\n> \n> - Make Zookeeper code more resilient against short network hiccups (Alexander)\n> \n> Reduce the connection timeouts to make Zookeeper connection attempts more frequent.\n> ","created_at":"2016-12-27T14:37:53Z","updated_at":"2016-12-27T14:37:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/pyupio/safety-db/pulls/1863/commits","review_comments_url":"https://api.github.com/repos/pyupio/safety-db/pulls/1863/comments","review_comment_url":"https://api.github.com/repos/pyupio/safety-db/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pyupio/safety-db/issues/1863/comments","statuses_url":"https://api.github.com/repos/pyupio/safety-db/statuses/d7a9c1bae80744e928237f063a2efc20b34867fe","head":{"label":"pyupio:changelog-patroni-version-1.0","ref":"changelog-patroni-version-1.0","sha":"d7a9c1bae80744e928237f063a2efc20b34867fe","user":{"login":"pyupio","id":16113910,"avatar_url":"https://avatars.githubusercontent.com/u/16113910?v=3","gravatar_id":"","url":"https://api.github.com/users/pyupio","html_url":"https://github.com/pyupio","followers_url":"https://api.github.com/users/pyupio/followers","following_url":"https://api.github.com/users/pyupio/following{/other_user}","gists_url":"https://api.github.com/users/pyupio/gists{/gist_id}","starred_url":"https://api.github.com/users/pyupio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyupio/subscriptions","organizations_url":"https://api.github.com/users/pyupio/orgs","repos_url":"https://api.github.com/users/pyupio/repos","events_url":"https://api.github.com/users/pyupio/events{/privacy}","received_events_url":"https://api.github.com/users/pyupio/received_events","type":"Organization","site_admin":false},"repo":{"id":70887007,"name":"safety-db","full_name":"pyupio/safety-db","owner":{"login":"pyupio","id":16113910,"avatar_url":"https://avatars.githubusercontent.com/u/16113910?v=3","gravatar_id":"","url":"https://api.github.com/users/pyupio","html_url":"https://github.com/pyupio","followers_url":"https://api.github.com/users/pyupio/followers","following_url":"https://api.github.com/users/pyupio/following{/other_user}","gists_url":"https://api.github.com/users/pyupio/gists{/gist_id}","starred_url":"https://api.github.com/users/pyupio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyupio/subscriptions","organizations_url":"https://api.github.com/users/pyupio/orgs","repos_url":"https://api.github.com/users/pyupio/repos","events_url":"https://api.github.com/users/pyupio/events{/privacy}","received_events_url":"https://api.github.com/users/pyupio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pyupio/safety-db","description":"A curated database of insecure Python packages","fork":false,"url":"https://api.github.com/repos/pyupio/safety-db","forks_url":"https://api.github.com/repos/pyupio/safety-db/forks","keys_url":"https://api.github.com/repos/pyupio/safety-db/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pyupio/safety-db/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pyupio/safety-db/teams","hooks_url":"https://api.github.com/repos/pyupio/safety-db/hooks","issue_events_url":"https://api.github.com/repos/pyupio/safety-db/issues/events{/number}","events_url":"https://api.github.com/repos/pyupio/safety-db/events","assignees_url":"https://api.github.com/repos/pyupio/safety-db/assignees{/user}","branches_url":"https://api.github.com/repos/pyupio/safety-db/branches{/branch}","tags_url":"https://api.github.com/repos/pyupio/safety-db/tags","blobs_url":"https://api.github.com/repos/pyupio/safety-db/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pyupio/safety-db/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pyupio/safety-db/git/refs{/sha}","trees_url":"https://api.github.com/repos/pyupio/safety-db/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pyupio/safety-db/statuses/{sha}","languages_url":"https://api.github.com/repos/pyupio/safety-db/languages","stargazers_url":"https://api.github.com/repos/pyupio/safety-db/stargazers","contributors_url":"https://api.github.com/repos/pyupio/safety-db/contributors","subscribers_url":"https://api.github.com/repos/pyupio/safety-db/subscribers","subscription_url":"https://api.github.com/repos/pyupio/safety-db/subscription","commits_url":"https://api.github.com/repos/pyupio/safety-db/commits{/sha}","git_commits_url":"https://api.github.com/repos/pyupio/safety-db/git/commits{/sha}","comments_url":"https://api.github.com/repos/pyupio/safety-db/comments{/number}","issue_comment_url":"https://api.github.com/repos/pyupio/safety-db/issues/comments{/number}","contents_url":"https://api.github.com/repos/pyupio/safety-db/contents/{+path}","compare_url":"https://api.github.com/repos/pyupio/safety-db/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pyupio/safety-db/merges","archive_url":"https://api.github.com/repos/pyupio/safety-db/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pyupio/safety-db/downloads","issues_url":"https://api.github.com/repos/pyupio/safety-db/issues{/number}","pulls_url":"https://api.github.com/repos/pyupio/safety-db/pulls{/number}","milestones_url":"https://api.github.com/repos/pyupio/safety-db/milestones{/number}","notifications_url":"https://api.github.com/repos/pyupio/safety-db/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pyupio/safety-db/labels{/name}","releases_url":"https://api.github.com/repos/pyupio/safety-db/releases{/id}","deployments_url":"https://api.github.com/repos/pyupio/safety-db/deployments","created_at":"2016-10-14T07:50:24Z","updated_at":"2016-12-16T03:44:23Z","pushed_at":"2016-12-27T14:37:53Z","git_url":"git://github.com/pyupio/safety-db.git","ssh_url":"git@github.com:pyupio/safety-db.git","clone_url":"https://github.com/pyupio/safety-db.git","svn_url":"https://github.com/pyupio/safety-db","homepage":"https://pyup.io","size":1843,"stargazers_count":332,"watchers_count":332,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7,"mirror_url":null,"open_issues_count":12,"forks":7,"open_issues":12,"watchers":332,"default_branch":"master"}},"base":{"label":"pyupio:master","ref":"master","sha":"3063d9b9efe3d40ed8c9c4794ba1f781a4068792","user":{"login":"pyupio","id":16113910,"avatar_url":"https://avatars.githubusercontent.com/u/16113910?v=3","gravatar_id":"","url":"https://api.github.com/users/pyupio","html_url":"https://github.com/pyupio","followers_url":"https://api.github.com/users/pyupio/followers","following_url":"https://api.github.com/users/pyupio/following{/other_user}","gists_url":"https://api.github.com/users/pyupio/gists{/gist_id}","starred_url":"https://api.github.com/users/pyupio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyupio/subscriptions","organizations_url":"https://api.github.com/users/pyupio/orgs","repos_url":"https://api.github.com/users/pyupio/repos","events_url":"https://api.github.com/users/pyupio/events{/privacy}","received_events_url":"https://api.github.com/users/pyupio/received_events","type":"Organization","site_admin":false},"repo":{"id":70887007,"name":"safety-db","full_name":"pyupio/safety-db","owner":{"login":"pyupio","id":16113910,"avatar_url":"https://avatars.githubusercontent.com/u/16113910?v=3","gravatar_id":"","url":"https://api.github.com/users/pyupio","html_url":"https://github.com/pyupio","followers_url":"https://api.github.com/users/pyupio/followers","following_url":"https://api.github.com/users/pyupio/following{/other_user}","gists_url":"https://api.github.com/users/pyupio/gists{/gist_id}","starred_url":"https://api.github.com/users/pyupio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyupio/subscriptions","organizations_url":"https://api.github.com/users/pyupio/orgs","repos_url":"https://api.github.com/users/pyupio/repos","events_url":"https://api.github.com/users/pyupio/events{/privacy}","received_events_url":"https://api.github.com/users/pyupio/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pyupio/safety-db","description":"A curated database of insecure Python packages","fork":false,"url":"https://api.github.com/repos/pyupio/safety-db","forks_url":"https://api.github.com/repos/pyupio/safety-db/forks","keys_url":"https://api.github.com/repos/pyupio/safety-db/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pyupio/safety-db/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pyupio/safety-db/teams","hooks_url":"https://api.github.com/repos/pyupio/safety-db/hooks","issue_events_url":"https://api.github.com/repos/pyupio/safety-db/issues/events{/number}","events_url":"https://api.github.com/repos/pyupio/safety-db/events","assignees_url":"https://api.github.com/repos/pyupio/safety-db/assignees{/user}","branches_url":"https://api.github.com/repos/pyupio/safety-db/branches{/branch}","tags_url":"https://api.github.com/repos/pyupio/safety-db/tags","blobs_url":"https://api.github.com/repos/pyupio/safety-db/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pyupio/safety-db/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pyupio/safety-db/git/refs{/sha}","trees_url":"https://api.github.com/repos/pyupio/safety-db/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pyupio/safety-db/statuses/{sha}","languages_url":"https://api.github.com/repos/pyupio/safety-db/languages","stargazers_url":"https://api.github.com/repos/pyupio/safety-db/stargazers","contributors_url":"https://api.github.com/repos/pyupio/safety-db/contributors","subscribers_url":"https://api.github.com/repos/pyupio/safety-db/subscribers","subscription_url":"https://api.github.com/repos/pyupio/safety-db/subscription","commits_url":"https://api.github.com/repos/pyupio/safety-db/commits{/sha}","git_commits_url":"https://api.github.com/repos/pyupio/safety-db/git/commits{/sha}","comments_url":"https://api.github.com/repos/pyupio/safety-db/comments{/number}","issue_comment_url":"https://api.github.com/repos/pyupio/safety-db/issues/comments{/number}","contents_url":"https://api.github.com/repos/pyupio/safety-db/contents/{+path}","compare_url":"https://api.github.com/repos/pyupio/safety-db/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pyupio/safety-db/merges","archive_url":"https://api.github.com/repos/pyupio/safety-db/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pyupio/safety-db/downloads","issues_url":"https://api.github.com/repos/pyupio/safety-db/issues{/number}","pulls_url":"https://api.github.com/repos/pyupio/safety-db/pulls{/number}","milestones_url":"https://api.github.com/repos/pyupio/safety-db/milestones{/number}","notifications_url":"https://api.github.com/repos/pyupio/safety-db/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pyupio/safety-db/labels{/name}","releases_url":"https://api.github.com/repos/pyupio/safety-db/releases{/id}","deployments_url":"https://api.github.com/repos/pyupio/safety-db/deployments","created_at":"2016-10-14T07:50:24Z","updated_at":"2016-12-16T03:44:23Z","pushed_at":"2016-12-27T14:37:53Z","git_url":"git://github.com/pyupio/safety-db.git","ssh_url":"git@github.com:pyupio/safety-db.git","clone_url":"https://github.com/pyupio/safety-db.git","svn_url":"https://github.com/pyupio/safety-db","homepage":"https://pyup.io","size":1843,"stargazers_count":332,"watchers_count":332,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7,"mirror_url":null,"open_issues_count":12,"forks":7,"open_issues":12,"watchers":332,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pyupio/safety-db/pulls/1863"},"html":{"href":"https://github.com/pyupio/safety-db/pull/1863"},"issue":{"href":"https://api.github.com/repos/pyupio/safety-db/issues/1863"},"comments":{"href":"https://api.github.com/repos/pyupio/safety-db/issues/1863/comments"},"review_comments":{"href":"https://api.github.com/repos/pyupio/safety-db/pulls/1863/comments"},"review_comment":{"href":"https://api.github.com/repos/pyupio/safety-db/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pyupio/safety-db/pulls/1863/commits"},"statuses":{"href":"https://api.github.com/repos/pyupio/safety-db/statuses/d7a9c1bae80744e928237f063a2efc20b34867fe"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":2,"additions":20,"deletions":11,"changed_files":2}}
{"actor":{"display_login":"pyup-vuln-bot"}}