Skip to content

Commit 1d6cde4

Browse files
committed
docs: import CloudNativePG main
1 parent 0c44260 commit 1d6cde4

11 files changed

Lines changed: 357 additions & 120 deletions

website/docs/cloudnative-pg.v1.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1957,8 +1957,9 @@ _Appears in:_
19571957

19581958
_Underlying type:_ _string_
19591959

1960-
PrimaryUpdateMethod contains the method to use when upgrading
1961-
the primary server of the cluster as part of rolling updates
1960+
PrimaryUpdateMethod defines the method to use when upgrading
1961+
the primary instance of the cluster as part of rolling updates.
1962+
The default method is "restart"
19621963

19631964

19641965

website/docs/declarative_role_management.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,23 @@ stringData:
179179
password: SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
180180
```
181181

182+
### Safety when transmitting cleartext passwords
183+
184+
While role passwords are safely managed in Kubernetes using Secrets,
185+
there is still a risk on the PostgreSQL side. If creating/altering a role with
186+
password, PostgreSQL may print the password as part of the query statement
187+
in some `postgres` logs, as mentioned in the [PostgreSQL documentation](https://www.postgresql.org/docs/current/sql-createrole.html):
188+
189+
> The password will be transmitted to the server in cleartext, and it might
190+
> also be logged in the client's command history or the server log
191+
192+
CloudNativePG adds a safety layer by temporarily suppressing both statement
193+
logging (`log_statement`) and error statement logging
194+
(`log_min_error_statement`) for any CREATE or ALTER operation on a role with
195+
password, thus preventing leakage in both success and failure scenarios.
196+
The Status section of the cluster does not print the query statement for any
197+
managed role operation.
198+
182199
## Unrealizable role configurations
183200

184201
In PostgreSQL, in some cases, commands cannot be honored by the database and

website/docs/failure_modes.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,26 @@ may be required.
6060

6161
### Disabling Reconciliation
6262

63-
To temporarily disable the reconciliation loop for a PostgreSQL cluster, use
64-
the `cnpg.io/reconciliationLoop` annotation:
63+
The `cnpg.io/reconciliationLoop` annotation allows you to temporarily disable
64+
the reconciliation loop for CloudNativePG resources. When set to `"disabled"`,
65+
the operator will stop processing updates for the annotated resource, preventing
66+
any automated changes or self-healing actions.
67+
68+
Use this annotation **with extreme caution** and only during emergency
69+
operations.
70+
71+
:::warning
72+
This annotation should be removed as soon as the issue is resolved. Leaving
73+
it in place prevents the operator from managing the annotated resource. On a
74+
Cluster, this includes self-healing actions and failover.
75+
:::
76+
77+
The following resources support this annotation:
78+
79+
- **Cluster**: Disables reconciliation of the PostgreSQL cluster
80+
- **Backup**: Disables reconciliation of backup operations
81+
82+
Example usage:
6583

6684
```yaml
6785
metadata:
@@ -71,12 +89,3 @@ metadata:
7189
spec:
7290
# ...
7391
```
74-
75-
Use this annotation **with extreme caution** and only during emergency
76-
operations.
77-
78-
:::warning
79-
This annotation should be removed as soon as the issue is resolved. Leaving
80-
it in place prevents the operator from executing self-healing actions,
81-
including failover.
82-
:::

website/docs/imagevolume_extensions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Extension images must be built according to the
4747
To use image volume extensions with CloudNativePG, you need:
4848

4949
- **PostgreSQL 18 or later**, with support for `extension_control_path`.
50-
- **Kubernetes 1.33**, with the `ImageVolume` feature gate enabled.
50+
- **Kubernetes 1.35** or later (1.33 and 1.34 with the `ImageVolume` feature gate enabled).
5151
- **Container runtime with `ImageVolume` support**:
5252
- `containerd` v2.1.0 or later, or
5353
- `CRI-O` v1.31 or later.

website/docs/installation_upgrade.md

Lines changed: 91 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ kubectl rollout status deployment \
3232
### Using the `cnpg` plugin for `kubectl`
3333

3434
You can use the `cnpg` plugin to override the default configuration options
35-
that are in the static manifests.
35+
that are in the static manifests.
3636

3737
For example, to generate the default latest manifest but change the watch
3838
namespaces to only be a specific namespace, you could run:
@@ -44,7 +44,7 @@ kubectl cnpg install generate \
4444
```
4545

4646
Please refer to ["`cnpg` plugin"](./kubectl-plugin.md#generation-of-installation-manifests) documentation
47-
for a more comprehensive example.
47+
for a more comprehensive example.
4848

4949
:::warning
5050
If you are deploying CloudNativePG on GKE and get an error (`... failed to
@@ -358,3 +358,92 @@ that apply declarative changes to enable or disable hibernation.
358358
The `hibernate status` command has been removed, as its purpose is now
359359
fulfilled by the standard `status` command.
360360

361+
## Verifying release assets
362+
363+
CloudNativePG cryptographically signs all official release assets. Verifying these
364+
signatures ensures the assets originate from the official repository and were
365+
published through our automated release workflow.
366+
367+
:::info
368+
Refer to the ["Release integrity and supply chain" section](security.md#release-integrity-and-supply-chain)
369+
for more information.
370+
:::
371+
372+
### Prerequisites
373+
374+
- **Signature verification:** [cosign](https://github.com/sigstore/cosign) CLI
375+
- **SBOM and Provenance:** [Docker Buildx](https://docs.docker.com/build/install-buildx/)
376+
(included in Docker Desktop and modern Docker versions)
377+
378+
### Verifying the Operator YAML Deployment
379+
380+
When installing via a direct YAML manifest, you should verify the manifest file
381+
using the corresponding bundle (the `.sigstore.json` file) provided on the
382+
[GitHub Release page](https://github.com/cloudnative-pg/cloudnative-pg/releases).
383+
384+
Run the following command:
385+
386+
```bash
387+
cosign verify-blob \
388+
cnpg-{version}.yaml \
389+
--bundle cnpg-{version}.sigstore.json \
390+
--certificate-identity-regexp "^https://github.com/cloudnative-pg/cloudnative-pg/.github/workflows/release-publish.yml@refs/tags/v" \
391+
--certificate-oidc-issuer "https://token.actions.githubusercontent.com"
392+
```
393+
394+
### Verifying the operator container images
395+
396+
Run the following command to verify the signature of the CloudNativePG operator
397+
images:
398+
399+
```bash
400+
cosign verify ghcr.io/cloudnative-pg/cloudnative-pg:{tag} \
401+
--certificate-identity-regexp="^https://github.com/cloudnative-pg/cloudnative-pg/.github/workflows/release-publish.yml@refs/tags/v" \
402+
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"
403+
```
404+
405+
We provide OCI attestations for full transparency. To inspect the Software Bill
406+
of Materials (SBOM) or build provenance, use the `docker buildx imagetools`
407+
command:
408+
409+
To view the Software Bill of Materials (SBOM) in SPDX format:
410+
411+
```bash
412+
docker buildx imagetools inspect ghcr.io/cloudnative-pg/cloudnative-pg:{tag} \
413+
--format '{{ json (index .SBOM "linux/amd64").SPDX }}'
414+
```
415+
416+
To inspect the SLSA Provenance (build details):
417+
418+
```bash
419+
docker buildx imagetools inspect ghcr.io/cloudnative-pg/cloudnative-pg:{tag} \
420+
--format '{{ json (index .Provenance "linux/amd64").SLSA }}'
421+
```
422+
423+
### Verifying PostgreSQL operand images
424+
425+
CloudNativePG maintains container images for all supported PostgreSQL versions
426+
as part of the [`postgres-containers` project](https://github.com/cloudnative-pg/postgres-containers)
427+
(also called operand images).
428+
429+
To verify the signature of a specific operand image:
430+
431+
```bash
432+
cosign verify ghcr.io/cloudnative-pg/postgresql:{tag} \
433+
--certificate-identity-regexp="^https://github.com/cloudnative-pg/postgres-containers/" \
434+
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"
435+
```
436+
437+
To view the Software Bill of Materials (SBOM) in SPDX format:
438+
439+
```bash
440+
docker buildx imagetools inspect ghcr.io/cloudnative-pg/postgresql:{tag} \
441+
--format '{{ json (index .SBOM "linux/amd64").SPDX }}'
442+
```
443+
444+
To inspect the SLSA Provenance (Build details):
445+
446+
```bash
447+
docker buildx imagetools inspect ghcr.io/cloudnative-pg/postgresql:{tag} \
448+
--format '{{ json (index .Provenance "linux/amd64").SLSA }}'
449+
```

website/docs/kubectl-plugin.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Dependencies resolved.
7777
Package Architecture Version Repository Size
7878
====================================================================================================
7979
Installing:
80-
cnpg x86_64 1.28.1 @commandline 20 M
80+
cnpg x86_64 1.28.1-1 @commandline 20 M
8181

8282
Transaction Summary
8383
====================================================================================================

0 commit comments

Comments
 (0)