CloudNativePG
=============

**CloudNativePG** is an open source `operator <https://kubernetes.io/docs/concepts/extend-kubernetes/operator/>`_ 

designed to manage `PostgreSQL <https://www.postgresql.org/>`_  workloads on any supported
 `Kubernetes <https://kubernetes.io>`_  cluster running in private, public, hybrid, or multi-cloud
environments. CloudNativePG adheres to DevOps principles and concepts
such as declarative configuration and immutable infrastructure.

It defines a new Kubernetes resource called ``Cluster`` representing a
PostgreSQL cluster made up of a single primary and an optional number of
replicas that co-exist in a chosen Kubernetes namespace for High
Availability and offloading of read-only queries.

Applications that reside in the same Kubernetes cluster can access the
PostgreSQL database using a service which is solely managed by the
operator, without having to worry about changes of the primary role
following a failover or a switchover. Applications that reside outside
the Kubernetes cluster, need to configure a Service or Ingress object to
expose the Postgres via TCP. Web applications can take advantage of the
native connection pooler based on PgBouncer.

CloudNativePG was originally built by `EDB <https://www.enterprisedb.com>`_  , then released open
source under Apache License 2.0 and submitted for CNCF Sandbox in April
2022. The `source code repository is in Github <https://github.com/cloudnative-pg/cloudnative-pg>`_  .

..  Note::
   Based on the  :ref:`Operator Capability Levels model <Operator Capability Levels>`  , users can expect a **"Level V - Auto Pilot"** set of capabilities from the CloudNativePG Operator.



.. toctree::
  :maxdepth: 3

  ch_01
  before_you_start
  use_cases
  architecture
  installation_upgrade
  quickstart
  bootstrap
  database_import
  security
  instance_manager
  scheduling
  resource_management
  failure_modes
  rolling_update
  replication
  backup
  backup_barmanobjectstore
  wal_archiving
  backup_volumesnapshot
  recovery
  backup_recovery
  postgresql_conf
  declarative_role_management
  operator_conf
  cluster_conf
  storage
  labels_annotations
  monitoring
  logging
  certificates
  ssl_connections
  applications
  connection_pooling
  replica_cluster
  kubernetes_upgrade
  expose_pg_services
  kubectl-plugin
  failover
  troubleshooting
  fencing
  declarative_hibernation
  postgis
  e2e
  container_images
  operator_capability_levels
  controller
  samples
  networking
  benchmarking
  commercial_support
  faq
  cloudnative-pg.v1
  supported_releases
  release_notes
  appobject_stores
  
