Skip to content
This repository was archived by the owner on Nov 30, 2017. It is now read-only.

Releases: dingotiles/dingo-postgresql-release

v0.10.2

11 Feb 05:15
Compare
Choose a tag to compare

Improvements

  • Add default locale of en_US.UTF-8 to initdb. [thx @wayneeseguin]
  • PostgreSQL patch upgrade from v9.5.4 to v9.5.5 for all service instances
  • Service broker always re-authenticates with Cloud Controller/UAA to avoid authentication tokens expiring

Upload to BOSH

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.10.2" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.10.2" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.10.1

11 Oct 20:23
Compare
Choose a tag to compare

Improvements

disaster-recovery errand supports buddy-broker derived services/plans

At @starkandwayne we have Dingo PostgreSQL running on AWS and registered privately with Pivotal Web Service in each of our organizations/spaces. Since Cloud Foundry requires all per-space brokers to have unique GUIDs and names we use https://github.com/cloudfoundry-community/buddy-broker. But Dingo PostgreSQL's disaster-recovery errand didn't work with it since it was only looking up a single service GUID.

This is now fixed. A service/plan registered with https://github.com/cloudfoundry-community/buddy-broker will have GUIDs that
are prefixed with the root service ID. So we now search thru all
pages of /v2/services, looking for multiple services that
have the GUID of or prefixed by the provided root service ID.

dpg support tool

Previously only available in bin/dpg within the BOSH release,
this support tool is now installable as a BOSH job template dpg-cli.
The spruce templates automatically add it to router job.
It pre-configures dpg with cf, etcd, and service broker credentials;
and makes dpg immediately runnable as root user.

To add dpg-cli to router job (or any other), add to the job and provide properties:

- name: router
  instances: 1
  templates:
    - {name: remote-syslog, release: simple-remote-syslog}
    - {name: broker, release: dingo-postgresql}
    - {name: router, release: dingo-postgresql}
    - {name: dpg-cli, release: dingo-postgresql}
  properties:
    servicebroker:
      machines: [127.0.0.1]
      port: 8889 # internally binding
      username: starkandwayne
      password: starkandwayne
    cf:
      api_url: ...
      username: ...
      password: ...
      skip_ssl_validation: false
    etcd:
      machines: [...]

Then, after bosh ssh router/0, change to root user and try dpg:

bosh ssh router/0
sudo su -
dpg ls

To see help, run dpg without arguments.

Example commands to test drive the support tool:

dpg
dpg target
dpg ls

The first column are the Cloud Foundry service instance IDs, referenced as INSTANCE_ID in the dpg help above.

dgp status INSTANCE_ID

To create or delete service instances without Cloud Foundry API/CLI:

dpg create my-first-cluster
dpg ls
dpg raw /service/my-first-cluster
dpg raw /service/my-first-cluster/members

Once the cluster is up and running:

dpg superuser-psql my-first-cluster

This will provide a psql interactive console:

psql (9.4.5, server 9.5.3)
WARNING: psql major version 9.4, server major version 9.5.
         Some psql features might not work.
Type "help" for help.

postgres=#

Continuing with example commands:

dpg wale-backup-list my-first-cluster
dpg delete my-first-cluster

NOTE: my-first-cluster will be a long UUID/GUID for values provided by Cloud Foundry; and a value prefixed by T- when created by the sanity-test errand (which can be deleted if you see them).

Upgrade to etcd-release v74

Check for new properties to disable/enable more health logging.

https://github.com/cloudfoundry-incubator/etcd-release/

Upload to BOSH

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.10.1" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.10.1" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.10.0

31 Aug 10:57
Compare
Choose a tag to compare

Do not upgrade from previous versions

If you are running a previous version and have running service instances/clusters, please contact us on https://slack.dingotiles.com to discuss the upgrade path.

New feature

  • clone-from - create a new service instance cloned from the latest backups of an existing service instance or previously existing (deleted) service instance from the same org/space.
cf create-service dingo-postgresql cluster prod
cf create-service dingo-postgresql cluster staging -c '{"clone-from":"prod"}'

The clone-from feature also allows developers/admins to confirm that backups are working (edit prod, create a clone-from and confirm that the edit exists in the clone).

Note: clone-from only works for service instances created since this feature was implemented.

To enable this feature, your deployment needs to add cf.* and backups.database_storage.* properties to broker template (in the router job).

To test the feature, add the integration-test errand to your deployment. See the templates/cf.yml and templates/integration-test.yml spruce templates.

Learn more at CFSummit Europe

Meet Justin Carter and Dr Nic Williams in Frankfurt http://sched.co/7rdh on Wed Sept 28!

Changes

  • disaster-recovery properties have changed (cf.api_url and cf.skip_ssl_validation)
  • removed support for backups.*.s3_endpoint (use backups.*.region) and the $WALE_S3_ENDPOINT variable until future time when we formally test alternate S3 apis

Upload to BOSH

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.10.0" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.10.0" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.9.3

18 Aug 22:06
Compare
Choose a tag to compare

Improvements

sanity-test now fails fast if AWS credentials are not correct. Previously if AWS credentials were not valid, or if bucket was in a different region than US East 1, the consequences were vague failures later on during the sanity test. Instead, we use new tool dingo-postgresql-fog-check to verify the two sets of buckets & their credentials.

Deployment manifests for sanity-test errand must be updated to provide the two sets of AWS credentials.

Additionally we have improved the draining algorithms for scheduling containers to be shutdown when VMs are being restarted/recreated. This requires an additional broker.drain_endpoint manifest configuration for each cell job.

Upload to BOSH

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.3" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.3" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.9.2

22 Jul 09:57
Compare
Choose a tag to compare

Fixes

Small refactoring and bug fix regarding the reinitialize_when_stalled.sh script. The script runs inside the container and attempts to reinitialize the db if it gets into an endless restart loop.

Upload to BOSH

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.2" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.2" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.9.1

21 Jul 06:23
Compare
Choose a tag to compare

Includes a fix to v0.9.0 for existing deployments that had historical/deleted service instances in etcd; which accidentally prevented new clusters from being provisioned.

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.1" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.1" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.9.0

19 Jul 01:58
Compare
Choose a tag to compare

Known issues

v0.9.0 accidentally assumes that there are no deleted service instances in etcd; which means they exist as service/ID but lack the service/ID/state data object; and this breaks adding nodes to existing clusters and breaks the ability to create new clusters. Fix coming in v0.9.1. #10 Oops, sorry!

Breaking Changes

Because sanity-test tests the 'move cluster' feature (see below) it requires a minimum of 4 cells to complete successfully. Installations with less will have to increase the cell instance count to complete the sanity-test.

Improvements

Administrators can create a cluster on behalf of a user into specific cells/vms:

cf create-service dingo-postgresql cluster their-db -c '{"cells": ["10.244.22.2", "10.244.21.7"]}'

Administrators can now "move" a cluster to different cells/vms

cf update-service their-db -c '{"cells": ["10.244.22.2", "10.244.21.7"]}'

The reason the cells parameter above is "for admins" is the requirement to know about the available/desirable "cells", which is an invisible concept to end users.

Use /admin/cells to discover available cells:

curl ${BROKER_URI}/admin/cells

Fixes

  • Allocation of nodes now correctly assigned into different AZs
  • Nodes are prioritized into cells that have fewer nodes

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.0" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.9.0" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.8.2

14 Jul 11:37
Compare
Choose a tag to compare

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.8.2" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.8.2" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.8.1

14 Jul 05:43
Compare
Choose a tag to compare

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.8.1" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.8.1" | jq -r ".assets[].browser_download_url"  | grep tgz

v0.8.0

29 Jun 03:07
Compare
Choose a tag to compare

To upload BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.8.0" | jq -r ".assets[].browser_download_url"  | grep tgz |   xargs -L1 bosh upload release --skip-if-exists

Or get URLs for BOSH releases:

curl -s "https://api.github.com/repos/dingotiles/dingo-postgresql-release/releases/tags/v0.8.0" | jq -r ".assets[].browser_download_url"  | grep tgz