diff --git a/crunchy-postgres-operator/INFO.md b/crunchy-postgres-operator/INFO.md new file mode 100644 index 00000000..829f18cb --- /dev/null +++ b/crunchy-postgres-operator/INFO.md @@ -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 \ No newline at end of file diff --git a/crunchy-postgres-operator/README.md b/crunchy-postgres-operator/README.md new file mode 100644 index 00000000..39c54e57 --- /dev/null +++ b/crunchy-postgres-operator/README.md @@ -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/ +``` + +Or, without cloning: + +``` +oc apply -k https://github.com/redhat-cop/gitops-catalog/crunchy-postgres-operator/operator/overlays/ +``` + +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/?ref=main +``` diff --git a/crunchy-postgres-operator/operator/README.md b/crunchy-postgres-operator/operator/README.md deleted file mode 100644 index 0c59497f..00000000 --- a/crunchy-postgres-operator/operator/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Crunchy Postgres Certified Operator - -Installs the Crunchy Postgres Certified operator into all namespaces. - -Current channel overlays include: -* v5 - -## Usage - -If you have cloned the `gitops-catalog` repository, you can install the Crunchy Postgres Certified operator based on the overlay of your choice by running from the root `gitops-catalog` directory - -``` -oc apply -k crunchy-postgres/operator/overlays/ -``` - -Or, without cloning: - -``` -oc apply -k https://github.com/redhat-cop/gitops-catalog/crunchy-postgres/operator/overlays/ -``` - -As part of a different overlay in your own GitOps repo: - -``` -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: - - github.com/redhat-cop/gitops-catalog/crunchy-postgres/operator/overlays/?ref=main -``` diff --git a/crunchy-postgres-operator/operator/base/kustomization.yaml b/crunchy-postgres-operator/operator/base/kustomization.yaml index 7afbc6cf..ab4763bc 100644 --- a/crunchy-postgres-operator/operator/base/kustomization.yaml +++ b/crunchy-postgres-operator/operator/base/kustomization.yaml @@ -1,4 +1,3 @@ ---- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization diff --git a/crunchy-postgres-operator/operator/overlays/v5/kustomization.yaml b/crunchy-postgres-operator/operator/overlays/v5/kustomization.yaml index 87056287..1b48bd33 100644 --- a/crunchy-postgres-operator/operator/overlays/v5/kustomization.yaml +++ b/crunchy-postgres-operator/operator/overlays/v5/kustomization.yaml @@ -1,4 +1,3 @@ ---- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization @@ -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