Skip to content

Commit

Permalink
reconfiguration
Browse files Browse the repository at this point in the history
Signed-off-by: Hiranmoy Das Chowdhury <[email protected]>
  • Loading branch information
HiranmoyChowdhury committed Nov 21, 2024
1 parent 5a1c2f7 commit 1bed713
Show file tree
Hide file tree
Showing 8 changed files with 843 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Here, we are going to deploy a `PgBouncer` standalone using a supported version

#### Deploy PgBouncer

In this section, we are going to deploy a PgBouncer with version `4.5.0` Then, in the next section we will set up autoscaling for this pgbouncer using `PgBouncerAutoscaler` CRD. Below is the YAML of the `PgBouncer` CR that we are going to create,
In this section, we are going to deploy a PgBouncer with version `1.18.0` Then, in the next section we will set up autoscaling for this pgbouncer using `PgBouncerAutoscaler` CRD. Below is the YAML of the `PgBouncer` CR that we are going to create,

```yaml
apiVersion: kubedb.com/v1
Expand Down
6 changes: 3 additions & 3 deletions docs/guides/pgbouncer/quickstart/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ KubeDB implements a PgBouncer crd to define the specifications of a PgBouncer.

Below is the PgBouncer object created in this tutorial.

`Note`: If your `KubeDB version` is less or equal to `v2024.6.4`, You have to use `v1alpha2` apiVersion.
`Note`: If your `KubeDB version` is less or equal to `v2024.6.4`, You have to use `v1` apiVersion.

```yaml
apiVersion: kubedb.com/v1
Expand Down Expand Up @@ -186,7 +186,7 @@ pgbouncer.kubedb.com/pgbouncer-server created
```

```yaml
apiVersion: kubedb.com/v1alpha2
apiVersion: kubedb.com/v1
kind: PgBouncer
metadata:
name: pgbouncer-server
Expand All @@ -208,7 +208,7 @@ spec:
```

```bash
$ kubectl create -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/examples/pgbouncer/quickstart/pgbouncer-server-v1alpha2.yaml
$ kubectl create -f https://github.com/kubedb/docs/raw/{{< param "info.version" >}}/docs/examples/pgbouncer/quickstart/pgbouncer-server-v1.yaml
pgbouncer.kubedb.com/pgbouncer-server created
```

Expand Down
10 changes: 10 additions & 0 deletions docs/guides/pgbouncer/reconfigure/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Reconfigure
menu:
docs_{{ .version }}:
identifier: pb-reconfigure
name: Reconfigure
parent: pb-pgbouncer-guides
weight: 48
menu_name: docs_{{ .version }}
---
54 changes: 54 additions & 0 deletions docs/guides/pgbouncer/reconfigure/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: Reconfiguring PgBouncer
menu:
docs_{{ .version }}:
identifier: pb-reconfigure-overview
name: Overview
parent: pb-reconfigure
weight: 10
menu_name: docs_{{ .version }}
section_menu_id: guides
---

> New to KubeDB? Please start [here](/docs/README.md).
# Reconfiguring PgBouncer

This guide will give an overview on how KubeDB Ops-manager operator reconfigures `PgBouncer`.

## Before You Begin

- You should be familiar with the following `KubeDB` concepts:
- [PgBouncer](/docs/guides/pgbouncer/concepts/pgbouncer.md)
- [PgBouncerOpsRequest](/docs/guides/pgbouncer/concepts/opsrequest.md)

## How Reconfiguring PgBouncer Process Works

The following diagram shows how KubeDB Ops-manager operator reconfigures `PgBouncer`. Open the image in a new tab to see the enlarged version.

<figure align="center">
  <img alt="Reconfiguring process of PgBouncer" src="/docs/images/day-2-operation/pgbouncer/pb-reconfigure.png">
<figcaption align="center">Fig: Reconfiguring process of PgBouncer</figcaption>
</figure>

The Reconfiguring PgBouncer process consists of the following steps:

1. At first, a user creates a `PgBouncer` Custom Resource (CR).

2. `KubeDB` Provisioner operator watches the `PgBouncer` CR.

3. When the operator finds a `PgBouncer` CR, it creates `PetSet` and related necessary stuff like secrets, services, etc.

4. Then, in order to reconfigure of the `PgBouncer`, the user creates a `PgBouncerOpsRequest` CR with desired information.

5. `KubeDB` Ops-manager operator watches the `PgBouncerOpsRequest` CR.

6. When it finds a `PgBouncerOpsRequest` CR, it pauses the `PgBouncer` object which is referred from the `PgBouncerOpsRequest`. So, the `KubeDB` Provisioner operator doesn't perform any operations on the `PgBouncer` object during the reconfiguring process.

7. Then the `KubeDB` Ops-manager operator will replace the existing configuration with the new configuration provided or merge the new configuration with the existing configuration according to the `PgBouncerOpsRequest` CR.

8. Then the `KubeDB` Ops-manager operator will perform reload operation in each Pod so that the desired configuration will replace the old configuration.

9. After the successful reconfiguring of the `PgBouncer`, the `KubeDB` Ops-manager operator resumes the `PgBouncer` object so that the `KubeDB` Provisioner operator resumes its usual operations.

In the next docs, we are going to show a step-by-step guide on reconfiguring PgBouncer database components using `PgBouncerOpsRequest` CRD.
Loading

0 comments on commit 1bed713

Please sign in to comment.