Skip to content

Commit

Permalink
update: crunchy
Browse files Browse the repository at this point in the history
  • Loading branch information
codekow committed Nov 11, 2023
1 parent 1b60953 commit 95cc393
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 36 deletions.
70 changes: 70 additions & 0 deletions crunchy-postgres-operator/INFO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# crunchy-postgres-operator

[PGO](https://github.com/CrunchyData/postgres-operator), the
[Postgres Operator](https://github.com/CrunchyData/postgres-operator) from
[Crunchy Data](https://www.crunchydata.com), gives you a **declarative Postgres** solution that
automatically manages your [PostgreSQL](https://www.postgresql.org) clusters.

Designed for your GitOps workflows, it is [easy to get started](https://access.crunchydata.com/documentation/postgres-operator/v5/quickstart/)
with Postgres on Kubernetes with PGO. Within a few moments, you can have a production grade Postgres
cluster complete with high availability, disaster recovery, and monitoring, all over secure TLS communications.
Even better, PGO lets you easily customize your Postgres cluster to tailor it to your workload!

With conveniences like cloning Postgres clusters to using rolling updates to roll out disruptive
changes with minimal downtime, PGO is ready to support your Postgres data at every stage of your
release pipeline. Built for resiliency and uptime, PGO will keep your desired Postgres in a desired
state so you do not need to worry about it.

PGO is developed with many years of production experience in automating Postgres management on
Kubernetes, providing a seamless cloud native Postgres solution to keep your data always available.

- **PostgreSQL Cluster Provisioning**: [Create, Scale, & Delete PostgreSQL clusters with ease][provisioning],
while fully customizing your Pods and PostgreSQL configuration!
- **High-Availability**: Safe, automated failover backed by a [distributed consensus based high-availability solution][high-availability].
Uses [Pod Anti-Affinity][k8s-anti-affinity] to help resiliency; you can configure how aggressive this can be!
Failed primaries automatically heal, allowing for faster recovery time. You can even create regularly scheduled
backups as well and set your backup retention policy
- **Disaster Recovery**: [Backups][backups] and [restores][disaster-recovery] leverage the open source [pgBackRest][] utility and
[includes support for full, incremental, and differential backups as well as efficient delta restores][backups].
Set how long you want your backups retained for. Works great with very large databases!
- **Monitoring**: [Track the health of your PostgreSQL clusters][monitoring] using the open source [pgMonitor][] library.
- **Clone**: [Create new clusters from your existing clusters or backups][clone] with efficient data cloning.
- **TLS**: All connections are over [TLS][tls]. You can also [bring your own TLS infrastructure][tls] if you do not want to use the provided defaults.
- **Connection Pooling**: Advanced [connection pooling][pool] support using [pgBouncer][pool].
- **Affinity and Tolerations**: Have your PostgreSQL clusters deployed to [Kubernetes Nodes][k8s-nodes] of your preference.
Set your [pod anti-affinity][k8s-anti-affinity], node affinity, Pod tolerations and more rules to customize your deployment topology!
- **PostgreSQL Major Version Upgrades**: Perform a [PostgreSQL major version upgrade][major-version-upgrade] declaratively.
- **Full Customizability**: Crunchy PostgreSQL for Kubernetes makes it easy to get your own PostgreSQL-as-a-Service up and running
and fully customize your deployments, including:
- Choose the resources for your Postgres cluster: [container resources and storage size][resize-cluster]. [Resize at any time][resize-cluster] with minimal disruption.
- Use your own container image repository, including support `imagePullSecrets` and private repositories
- [Customize your PostgreSQL configuration][customize-cluster]

and much more!

[backups]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/backups-disaster-recovery/backups
[clone]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/backups-disaster-recovery/disaster-recovery#clone-a-postgres-cluster
[customize-cluster]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/day-two/customize-cluster
[disaster-recovery]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/backups-disaster-recovery/disaster-recovery
[high-availability]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/day-two/high-availability
[major-version-upgrade]: https://access.crunchydata.com/documentation/postgres-operator/latest/guides/major-postgres-version-upgrade
[monitoring]: https://access.crunchydata.com/documentation/postgres-operator/latest/architecture/monitoring
[pool]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/basic-setup/connection-pooling
[provisioning]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/basic-setup/create-cluster
[resize-cluster]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/cluster-management/resize-cluster
[tls]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials/day-two/customize-cluster#customize-tls

[k8s-anti-affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#inter-pod-affinity-and-anti-affinity
[k8s-nodes]: https://kubernetes.io/docs/concepts/architecture/nodes/

[pgBackRest]: https://www.pgbackrest.org
[pgMonitor]: https://github.com/CrunchyData/pgmonitor


## Post-Installation

### Tutorial

Want to [learn more about the PostgreSQL Operator][tutorial]? Browse through the [tutorial][] to learn more about what you can do!

[tutorial]: https://access.crunchydata.com/documentation/postgres-operator/latest/tutorials
32 changes: 32 additions & 0 deletions crunchy-postgres-operator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Crunchy Postgres for Kubernetes

Install Crunchy Postgres for Kubernetes.

Do not use the `base` directory directly, as you will need to patch the `channel` based on the version of OpenShift you are using, or the version of the operator you want to use.

The current *overlays* available are for the following channels:

* [v5](operator/overlays/v5)

## Usage

If you have cloned the `gitops-catalog` repository, you can install Crunchy Postgres for Kubernetes based on the overlay of your choice by running from the root (`gitops-catalog`) directory.

```
oc apply -k crunchy-postgres-operator/operator/overlays/<channel>
```

Or, without cloning:

```
oc apply -k https://github.com/redhat-cop/gitops-catalog/crunchy-postgres-operator/operator/overlays/<channel>
```

As part of a different overlay in your own GitOps repo:

```
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/redhat-cop/gitops-catalog/crunchy-postgres-operator/operator/overlays/<channel>?ref=main
```
30 changes: 0 additions & 30 deletions crunchy-postgres-operator/operator/README.md

This file was deleted.

1 change: 0 additions & 1 deletion crunchy-postgres-operator/operator/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

Expand All @@ -8,8 +7,7 @@ resources:
- ../../base

patches:
- path: patch-channel.yaml
target:
group: operators.coreos.com
- target:
kind: Subscription
version: v1alpha1
name: crunchy-postgres-operator
path: patch-channel.yaml

0 comments on commit 95cc393

Please sign in to comment.