Skip to content

Commit

Permalink
Release v0.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
sgotti committed Dec 14, 2016
1 parent 258bcbc commit 80b8649
Show file tree
Hide file tree
Showing 11 changed files with 51 additions and 13 deletions.
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
### v0.5.0

This version is a big step forward previous releases and provides many new features and a better cluster management.

* Now the configuration is fully declarative (see [cluster specification](doc/cluster_spec.md) documentation) ([#178](https://github.com/sorintlab/stolon/pull/178)).
* Ability to create a new cluster starting from a previous backup (point in time recovery) ([#183](https://github.com/sorintlab/stolon/pull/183))
* Wal-e backup/restore example ([#183](https://github.com/sorintlab/stolon/pull/183))
* Better synchronous replication, the user can define a min and a max number of required synchronous standbys and the master will always block waiting for acknowledge by the required sync standbys. Only synchronous standbys will be elected as new master. ([#219](https://github.com/sorintlab/stolon/pull/219))
* Production ready kubernetes examples (just change the persistent volume provider) ([#215](https://github.com/sorintlab/stolon/pull/215))
* To keep an unique managed central configuration, the postgresql parameters can now only be managed only using the cluster specification ([#181](https://github.com/sorintlab/stolon/pull/181))
* When (re)initializing a new cluster (with an empty db, from an existing instance or from a backup) the postgresql parameters are automatically merged in the cluster spec ([#181](https://github.com/sorintlab/stolon/pull/181))
* Use only store based communication and discovery (removed all the kubernetes specific options) ([#195](https://github.com/sorintlab/stolon/pull/195))
* Ability to use TLS communication with the store (for both etcd and consul) ([#208](https://github.com/sorintlab/stolon/pull/208))
* Better standby monitoring and replacement ([#218](https://github.com/sorintlab/stolon/pull/218))
* Improved logging ([#187](https://github.com/sorintlab/stolon/pull/187))

Many other [improvements and bug fixes](https://github.com/sorintlab/stolon/milestone/4)

### v0.4.0

Some cleanups and changes in preparation for release v0.5.0 that will receive a big refactor (with different breaking changes) needed to bring a lot of new features.
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ stolon is a cloud native PostgreSQL manager for PostgreSQL high availability. It

For an introduction to stolon you can also take a look at [this post](https://sgotti.me/post/stolon-introduction/)

**Note: The current master branch that will lead to v0.5.0 is receiving a big refactor needed to implement a lot of new features (see the [v0.5.0 roadmap](https://github.com/sorintlab/stolon/issues?q=is%3Aopen+is%3Aissue+milestone%3Av0.5.0)). So some breakage is expected.**

## Features

* Leverages PostgreSQL streaming replication.
Expand Down
27 changes: 25 additions & 2 deletions doc/upgrade.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,36 @@
# Upgrading from v0.4.0 to v0.5.0

Stolon v0.5.0 received a big rework to improve its internal data model and implement new features. To upgrade an existing cluster from v0.4.0 to v0.5.0 you can follow these steps.
## Removed commands options

* Annotate the master keeperUID (previously called keeper id). You can retrieve this using `stolonctl status`
These stolon commands options were removed. You should update your scripts invoking the stolon components removing them.

### stolon-keeper
`--listen-address`
`--port`
`--pg-conf-dir`
`--id` has been deprecated (but yet available). `--uid` should be used instead.

### stolon-sentinel
`--listen-address`
`--port`
`--discovery-type`
`--initial-cluster-config` (the equivalent for the new cluster spec format is `--initial-cluster-spec`)
`--keeper-kube-label-selector`
`--keeper-port`
`--kubernetes-namespace`

### Upgrade for new cluster data

Stolon v0.5.0 received a big rework to improve its internal data model and implement new features. To upgrade an existing cluster from v0.4.0 to v0.5.0 you can follow the steps below (we suggest to try them in a test environment).

* Annotate the master keeperUID (previously called keeper id). You can retrieve this using `stolonctl status`.
* Stop all the cluster processes (keepers, sentinels and proxies)
* Upgrade the binaries to stolon v0.5.0
* Relaunch all the cluster processes. They will loop reporting `unsupported clusterdata format version 0`.
* Initialize a new cluster data using the master keeperUID:

```
stolonctl init '{ "initMode": "existing", "existingConfig": { "keeperUID": "keeper01" } }'
```

The leader sentinel will choose the other keepers as standbys and they'll resync with the current master (they will do this also if before the upgrade they were already standbys since this is needed to adapt to the new cluster data format).
3 changes: 1 addition & 2 deletions examples/kubernetes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@ There're two examples. The difference between them is how the keepers pods are d

Prebuilt images are available on the dockerhub, the images' tags are the stolon release version plus the postgresql version (for example v0.5.0-pg9.6). Additional images are available:

* `latest-pg9.6`: latest released image (after v0.4.0).
* `latest-pg9.6`: latest released image (for stolon versions >= v0.5.0).
* `master-pg9.6`: automatically built after every commit to the master branch.
* `latest`: latest released image (until v0.4.0).


In the [image](examples/kubernetes/image/docker) directory you'll find a Makefile to build the image used in this example (starting from the official postgreSQL images). The Makefile generates the Dockefile from a template Dockerfile where you have to define the wanted postgres version and image tag (`PGVERSION` adn `TAG` mandatory variables).
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/rc/stolon-keeper0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ spec:
terminationGracePeriodSeconds: 10
containers:
- name: stolon-keeper
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/rc/stolon-keeper1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ spec:
terminationGracePeriodSeconds: 10
containers:
- name: stolon-keeper
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/rc/stolon-proxy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spec:
spec:
containers:
- name: stolon-proxy
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/rc/stolon-sentinel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spec:
spec:
containers:
- name: stolon-sentinel
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/statefulset/stolon-keeper.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ spec:
terminationGracePeriodSeconds: 10
containers:
- name: stolon-keeper
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/statefulset/stolon-proxy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spec:
spec:
containers:
- name: stolon-proxy
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down
2 changes: 1 addition & 1 deletion examples/kubernetes/statefulset/stolon-sentinel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ spec:
spec:
containers:
- name: stolon-sentinel
image: sorintlab/stolon:master-pg9.6
image: sorintlab/stolon:v0.5.0-pg9.6
command:
- "/bin/bash"
- "-ec"
Expand Down

0 comments on commit 80b8649

Please sign in to comment.