Postgres operator creates and manages PostgreSQL clusters running in Kubernetes
Go to file
Jonathan Juares Beber fddaf0fb73 Change error computation on JSON Unmarshal and create subtests on table test scenarios (#801)
* Change error computation on JSON Unmarshall

The [Unmarshall function][1] on the encoding/JSON default library returns
different errors for different go versions. On Go 1.12, the version used
currently on the CI system it returns `json: cannot unmarshal number into
Go struct field PostgresSpec.teamId of type string`. On Go 1.13.5 it
returns `json: cannot unmarshal number into Go struct field
PostgresSpec.spec.teamId of type string`. The new version includes more
details of the whole structure being unmarshelled.

This commit introduces the same error but one level deeper on the JSON
structure. It creates consistency across different Go versions.

[1]: https://godoc.org/encoding/json#Unmarshal

* Create subtests on table test scenarios

The Run method of T allows defining subtests creating hierarchical tests.
It provides better visibility of tests in case of failure. More
details on https://golang.org/pkg/testing/.

This commit converts each test scenario on
pkg/apis/acid.zalan.do/v1/util_test.go to subtests, providing a better
visibility and the debugging environment when working with tests. The
following code snippet shows an error during test execution with
subtests:

```
--- FAIL: TestUnmarshalMaintenanceWindow (0.00s)
    --- FAIL: TestUnmarshalMaintenanceWindow/expect_error_as_'From'_is_later_than_'To' (0.00s)
```

It included a `about` field on test scenarios describing the test
purpose and/or it expected output. When a description was provided with
comments it was moved to the about field.
2020-01-27 14:43:32 +01:00
charts/postgres-operator bump to v1.3.1 (#780) 2020-01-06 14:08:47 +01:00
cmd reflect change in github url (#496) 2019-02-25 11:26:55 +01:00
docker reduce tracing of dumps and include Pg12 (#791) 2020-01-13 18:23:04 +01:00
docs extend docs and polish manifest examples (#762) 2019-12-12 17:55:41 +01:00
e2e Add global option to enable/disable init containers and sidecars (#478) 2019-12-10 15:45:54 +01:00
hack hack: update shebang (#755) 2019-12-10 14:54:12 +01:00
kubectl-pg [GSoC 2019] kubectl plugin for the Postgres operator (#579) 2019-08-27 12:51:21 +02:00
manifests bump to v1.3.1 (#780) 2020-01-06 14:08:47 +01:00
pkg Change error computation on JSON Unmarshal and create subtests on table test scenarios (#801) 2020-01-27 14:43:32 +01:00
ui move StatefulSet to apps/v1 (#675) 2019-09-30 16:42:04 +02:00
.flake8 Implement runner for e2e tests (#548) 2019-06-05 17:07:27 +02:00
.gitignore install kind as GO module (#742) 2019-11-28 17:39:25 +01:00
.golangci.yml add .golangci.yml (#422) 2018-11-27 12:00:15 +01:00
.travis.yml Replace glide with Go modules (#544) 2019-10-02 16:18:55 +02:00
.zappr.yaml Restore .zappr.yaml (#405) 2018-11-07 13:06:53 +01:00
CODEOWNERS Add Rafia to code owners (#588) 2019-06-14 14:56:40 +02:00
CONTRIBUTING.md Update docs for v1.2 (#609) 2019-07-11 17:19:27 +02:00
LICENSE update copyright in generated code (#779) 2020-01-02 17:34:49 +01:00
MAINTAINERS [WIP] Draft codeowners, update maintainers (#358) 2018-08-06 08:59:00 +02:00
Makefile go.mod: fix dependencies (#754) 2019-12-12 17:27:40 +01:00
README.md make run.sh executable from within e2e (#619) 2019-07-24 15:07:32 +02:00
SECURITY.md docs(general): Adding Security.md (#88) 2017-09-04 14:33:30 +02:00
build-ci.sh reflect change in github url (#496) 2019-02-25 11:26:55 +01:00
delivery.yaml Add CRD validation (#599) 2019-11-28 12:02:05 +01:00
go.mod go.mod: fix dependencies (#754) 2019-12-12 17:27:40 +01:00
go.sum go.mod: fix dependencies (#754) 2019-12-12 17:27:40 +01:00
mkdocs.yml use h1 tags to not render titles in sidebar (#626) 2019-07-19 12:50:39 +02:00
run_operator_locally.sh Add CRD validation (#599) 2019-11-28 12:02:05 +01:00

README.md

Postgres Operator

Build Status Coverage Status Go Report Card GoDoc golangci

The Postgres Operator enables highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni. It is configured only through manifests to ease integration into automated CI/CD pipelines with no access to Kubernetes directly.

Operator features

  • Rolling updates on Postgres cluster changes
  • Volume resize without Pod restarts
  • Cloning Postgres clusters
  • Logical Backups to S3 Bucket
  • Standby cluster from S3 WAL archive
  • Configurable for non-cloud environments
  • UI to create and edit Postgres cluster manifests

PostgreSQL features

The Postgres Operator has been developed at Zalando and is being used in production for over two years.

Getting started

For a quick first impression follow the instructions of this tutorial.

Documentation

There is a browser-friendly version of this documentation at postgres-operator.readthedocs.io

Google Summer of Code

The Postgres Operator made it to the Google Summer of Code 2019! Check our ideas and start discussions in the issue tracker.

Community

There are two places to get in touch with the community:

  1. The GitHub issue tracker
  2. The #postgres-operator slack channel