Skip to content

datadevopscloud/postgres-operator

 
 

Repository files navigation

Postgres Operator

Build Status Coverage Status Go Report Card GoDoc golangci

Introduction to the Postgres Operator

The Postgres operator manages PostgreSQL clusters on Kubernetes:

  1. The operator watches additions, updates, and deletions of PostgreSQL cluster manifests and changes the running clusters accordingly. For example, when a user submits a new manifest, the operator spawns a new Postgres cluster with necessary entities such as StatefulSets, Services, and also Postgres roles. See this Postgres cluster manifest for settings that a manifest may contain.

  2. The operator also watches updates to its own configuration and alters running Postgres clusters if necessary. For instance, if a pod Docker image is changed, the operator carries out the rolling update. That is, the operator re-spawns one-by-one pods of each StatefulSet it manages with the new Docker image.

  3. Finally, the operator periodically synchronizes the actual state of each Postgres cluster with the desired state defined in the cluster's manifest.

  4. The operator aims to be hands free and configuration happens only via manifests and its own config. This enables easy integration in automated deploy pipelines with no access to Kubernetes directly.

Getting started

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

Google Summer of Code

The Postgres Operator made it to the Google Summer of Code 2019! As a brand new mentoring organization, we are now looking for our first mentees. Check our ideas and start discussion in the issue tracker. And don't forget to spread a word about our GSoC participation to attract even more students.

Table of contents

The rest of this document is a tutorial to get you up and running locally with the operator on Minikube.

Overview of involved entities

Here is a diagram, that summarizes what would be created by the operator, when a new Postgres cluster CRD is submitted:

postgresql-operator

This picture is not complete without an overview of what is inside a single cluster pod, so let's zoom in:

pod

These two diagrams should help you to understand the basics of what kind of functionality the operator provides.

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

Community

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

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

About

Postgres operator creates and manages PostgreSQL clusters running in Kubernetes

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 97.2%
  • Shell 2.1%
  • Other 0.7%