Skip to content

Commit

Permalink
Version tag to 0.30 (#124)
Browse files Browse the repository at this point in the history
Automated PR. Will trigger the 0.30 release when approved.

Signed-off-by: Tao Li <[email protected]>
Co-authored-by: Tao Li <[email protected]>
Signed-off-by: Tao Li <[email protected]>
  • Loading branch information
github-actions[bot] and litaocdl committed Jan 14, 2025
1 parent 6d0f41d commit 7a9dc0f
Show file tree
Hide file tree
Showing 7 changed files with 17,922 additions and 53 deletions.
36 changes: 20 additions & 16 deletions .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,7 @@ jobs:
name: Build meta
id: build-meta
run: |
images='ghcr.io/cloudnative-pg/cloudnative-pg'
images="${images},ghcr.io/cloudnative-pg/cloudnative-pg-testing"
images='ghcr.io/EnterpriseDB/cloudnative-pg-testing'
commit_sha=${{ github.sha }}
commit_date=$(git log -1 --pretty=format:'%ad' --date short "${commit_sha}")
Expand All @@ -131,21 +130,26 @@ jobs:
echo "COMMIT=${commit_short}" >> $GITHUB_ENV
echo "author_name=${author_name}" >> $GITHUB_OUTPUT
echo "author_email=${author_email}" >> $GITHUB_OUTPUT
# -
# name: Import GPG key
# id: import_gpg
# uses: crazy-max/ghaction-import-gpg@v6
# with:
# gpg_private_key:
# passphrase:
-
name: Import GPG key
id: import_gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
name: Install syft
id: install-syft
uses: anchore/sbom-action/[email protected]
-
name: Set GoReleaser environment
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
# env:
# GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
run: |
echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV
echo PWD=$(pwd) >> $GITHUB_ENV
echo "$GPG_PRIVATE_KEY" > gpg_signing_key.asc
# echo "$GPG_PRIVATE_KEY" > gpg_signing_key.asc
echo ${{ steps.install-syft.outputs.cmd }}
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
Expand All @@ -157,8 +161,8 @@ jobs:
DATE: ${{ env.DATE }}
COMMIT: ${{ env.COMMIT }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
NFPM_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
# GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}
# NFPM_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
-
name: Publish Krew
if: |
Expand Down Expand Up @@ -240,7 +244,7 @@ jobs:
with:
image: ${{ steps.docker-meta.outputs.tags }}
artifact-name: cloudnative-pg-${{ env.VERSION }}.spdx
upload-artifact: false
upload-artifact: true
-
name: Build and push UBI8
uses: docker/build-push-action@v6
Expand All @@ -258,7 +262,7 @@ jobs:
with:
image: ${{ steps.docker-meta-ubi8.outputs.tags }}
artifact-name: cloudnative-pg-${{ env.VERSION }}-ubi8.spdx
upload-artifact: false
upload-artifact: true
-
name: Build and push UBI9
uses: docker/build-push-action@v6
Expand All @@ -276,7 +280,7 @@ jobs:
with:
image: ${{ steps.docker-meta-ubi9.outputs.tags }}
artifact-name: cloudnative-pg-${{ env.VERSION }}-ubi9.spdx
upload-artifact: false
upload-artifact: true
-
name: publish SBOMs
uses: anchore/sbom-action/[email protected]
Expand Down
35 changes: 19 additions & 16 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ project_name: cnpg

release:
github:
owner: cloudnative-pg
owner: EnterpriseDB
name: cloudnative-pg

env:
Expand All @@ -24,9 +24,9 @@ builds:
ldflags:
- -s
- -w
- -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildVersion={{.Env.VERSION}}
- -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildCommit={{.Env.COMMIT}}
- -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildDate={{.Env.DATE}}
- -X github.com/EnterpriseDB/cloudnative-pg/pkg/versions.buildVersion={{.Env.VERSION}}
- -X github.com/EnterpriseDB/cloudnative-pg/pkg/versions.buildCommit={{.Env.COMMIT}}
- -X github.com/EnterpriseDB/cloudnative-pg/pkg/versions.buildDate={{.Env.DATE}}
goos:
- linux
goarch:
Expand All @@ -41,9 +41,9 @@ builds:
ldflags:
- -s
- -w
- -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildVersion={{.Env.VERSION}}
- -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildCommit={{.Env.COMMIT}}
- -X github.com/cloudnative-pg/cloudnative-pg/pkg/versions.buildDate={{.Env.DATE}}
- -X github.com/EnterpriseDB/cloudnative-pg/pkg/versions.buildVersion={{.Env.VERSION}}
- -X github.com/EnterpriseDB/cloudnative-pg/pkg/versions.buildCommit={{.Env.COMMIT}}
- -X github.com/EnterpriseDB/cloudnative-pg/pkg/versions.buildDate={{.Env.DATE}}
goos:
- darwin
- linux
Expand Down Expand Up @@ -93,12 +93,12 @@ nfpms:
formats:
- rpm
- deb
rpm:
signature:
key_file: gpg_signing_key.asc
deb:
signature:
key_file: gpg_signing_key.asc
# rpm:
# signature:
# key_file: gpg_signing_key.asc
# deb:
# signature:
# key_file: gpg_signing_key.asc

checksum:
name_template: '{{ .ProjectName }}-{{ .Version }}-checksums.txt'
Expand All @@ -109,13 +109,16 @@ snapshot:
changelog:
disable: true

signs:
- artifacts: checksum
args: ["--batch", "-u", "{{ .Env.GPG_FINGERPRINT }}", "--output", "${signature}", "--detach-sign", "${artifact}"]
# signs:
# - artifacts: checksum
# args: ["--batch", "-u", "{{ .Env.GPG_FINGERPRINT }}", "--output", "${signature}", "--detach-sign", "${artifact}"]

krews:
- name: cnpg
homepage: https://github.com/cloudnative-pg/cloudnative-pg
short_description: 'Manage your CloudNativePG clusters'
skip_upload: true
description: 'This plugin provides multiple commands to help you manage your CloudNativePG clusters.'

sboms:
- artifacts: archive
6 changes: 3 additions & 3 deletions docs/src/installation_upgrade.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
The operator can be installed like any other resource in Kubernetes,
through a YAML manifest applied via `kubectl`.

You can install the [latest operator manifest](https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.25/releases/cnpg-1.25.0.yaml)
You can install the [latest operator manifest](https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-0.30.yaml)
for this minor release as follows:

```sh
kubectl apply --server-side -f \
https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.25/releases/cnpg-1.25.0.yaml
https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-0.30.yaml
```

You can verify that with:
Expand Down Expand Up @@ -72,7 +72,7 @@ specific minor release, you can just run:

```sh
curl -sSfL \
https://raw.githubusercontent.com/cloudnative-pg/artifacts/release-1.25/manifests/operator-manifest.yaml | \
https://raw.githubusercontent.com/cloudnative-pg/artifacts/release-0.30/manifests/operator-manifest.yaml | \
kubectl apply --server-side -f -
```

Expand Down
30 changes: 15 additions & 15 deletions docs/src/kubectl-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ them in your systems.

#### Debian packages

For example, let's install the 1.25.0 release of the plugin, for an Intel based
For example, let's install the 0.30 release of the plugin, for an Intel based
64 bit server. First, we download the right `.deb` file.

```sh
wget https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.25.0/kubectl-cnpg_1.25.0_linux_x86_64.deb \
wget https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v0.30/kubectl-cnpg_0.30_linux_x86_64.deb \
--output-document kube-plugin.deb
```

Expand All @@ -45,17 +45,17 @@ $ sudo dpkg -i kube-plugin.deb
Selecting previously unselected package cnpg.
(Reading database ... 6688 files and directories currently installed.)
Preparing to unpack kube-plugin.deb ...
Unpacking cnpg (1.25.0) ...
Setting up cnpg (1.25.0) ...
Unpacking cnpg (0.30) ...
Setting up cnpg (0.30) ...
```

#### RPM packages

As in the example for `.rpm` packages, let's install the 1.25.0 release for an
As in the example for `.rpm` packages, let's install the 0.30 release for an
Intel 64 bit machine. Note the `--output` flag to provide a file name.

```sh
curl -L https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v1.25.0/kubectl-cnpg_1.25.0_linux_x86_64.rpm \
curl -L https://github.com/cloudnative-pg/cloudnative-pg/releases/download/v0.30/kubectl-cnpg_0.30_linux_x86_64.rpm \
--output kube-plugin.rpm
```

Expand All @@ -69,7 +69,7 @@ Dependencies resolved.
Package Architecture Version Repository Size
====================================================================================================
Installing:
cnpg x86_64 1.25.0-1 @commandline 20 M
cnpg x86_64 0.30 @commandline 20 M

Transaction Summary
====================================================================================================
Expand Down Expand Up @@ -293,9 +293,9 @@ sandbox-3 0/604DE38 0/604DE38 0/604DE38 0/604DE38 00:00:00 00:00:00 00
Instances status
Name Current LSN Replication role Status QoS Manager Version Node
---- ----------- ---------------- ------ --- --------------- ----
sandbox-1 0/604DE38 Primary OK BestEffort 1.25.0 k8s-eu-worker
sandbox-2 0/604DE38 Standby (async) OK BestEffort 1.25.0 k8s-eu-worker2
sandbox-3 0/604DE38 Standby (async) OK BestEffort 1.25.0 k8s-eu-worker
sandbox-1 0/604DE38 Primary OK BestEffort 0.30 k8s-eu-worker
sandbox-2 0/604DE38 Standby (async) OK BestEffort 0.30 k8s-eu-worker2
sandbox-3 0/604DE38 Standby (async) OK BestEffort 0.30 k8s-eu-worker
```

If you require more detailed status information, use the `--verbose` option (or
Expand Down Expand Up @@ -349,9 +349,9 @@ sandbox-primary primary 1 1 1
Instances status
Name Current LSN Replication role Status QoS Manager Version Node
---- ----------- ---------------- ------ --- --------------- ----
sandbox-1 0/6053720 Primary OK BestEffort 1.25.0 k8s-eu-worker
sandbox-2 0/6053720 Standby (async) OK BestEffort 1.25.0 k8s-eu-worker2
sandbox-3 0/6053720 Standby (async) OK BestEffort 1.25.0 k8s-eu-worker
sandbox-1 0/6053720 Primary OK BestEffort 0.30 k8s-eu-worker
sandbox-2 0/6053720 Standby (async) OK BestEffort 0.30 k8s-eu-worker2
sandbox-3 0/6053720 Standby (async) OK BestEffort 0.30 k8s-eu-worker
```

With an additional `-v` (e.g. `kubectl cnpg status sandbox -v -v`), you can
Expand Down Expand Up @@ -574,12 +574,12 @@ Archive: report_operator_<TIMESTAMP>.zip

```output
====== Begin of Previous Log =====
2023-03-28T12:56:41.251711811Z {"level":"info","ts":"2023-03-28T12:56:41Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"1.25.0","build":{"Version":"1.25.0+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
2023-03-28T12:56:41.251711811Z {"level":"info","ts":"2023-03-28T12:56:41Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"0.30","build":{"Version":"0.30+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
2023-03-28T12:56:41.251851909Z {"level":"info","ts":"2023-03-28T12:56:41Z","logger":"setup","msg":"Starting pprof HTTP server","addr":"0.0.0.0:6060"}
<snipped …>
====== End of Previous Log =====
2023-03-28T12:57:09.854306024Z {"level":"info","ts":"2023-03-28T12:57:09Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"1.25.0","build":{"Version":"1.25.0+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
2023-03-28T12:57:09.854306024Z {"level":"info","ts":"2023-03-28T12:57:09Z","logger":"setup","msg":"Starting CloudNativePG Operator","version":"0.30","build":{"Version":"0.30+dev107","Commit":"cc9bab17","Date":"2023-03-28"}}
2023-03-28T12:57:09.854363943Z {"level":"info","ts":"2023-03-28T12:57:09Z","logger":"setup","msg":"Starting pprof HTTP server","addr":"0.0.0.0:6060"}
```

Expand Down
91 changes: 91 additions & 0 deletions docs/src/release_notes/v0.30.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Release notes for CloudNativePG 1.25

History of user-visible changes in the 1.25 minor release of CloudNativePG.

For a complete list of changes, please refer to the
[commits](https://github.com/cloudnative-pg/cloudnative-pg/commits/release-1.25)
on the release branch in GitHub.

## Version 1.25.0

**Release Date:** December 23, 2024

### Features

- **Declarative Database Management**: Introduce the `Database` Custom Resource
Definition (CRD), enabling users to create and manage PostgreSQL databases
declaratively within a cluster. (#5325)

- **Logical Replication Management**: Add `Publication` and `Subscription` CRDs
for declarative management of PostgreSQL logical replication. These simplify
replication setup and facilitate online migrations to CloudNativePG. (#5329)

- **Experimental Support for CNPG-I**: Introducing CNPG-I (CloudNativePG
Interface), a standardized framework designed to extend CloudNativePG
functionality through third-party plugins and foster the growth of the CNPG
ecosystem.
The [Barman Cloud Plugin](https://github.com/cloudnative-pg/plugin-barman-cloud) serves as a live
example, illustrating how plugins can be developed to enhance backup and
recovery workflows. Although CNPG-I support is currently experimental, it
offers a powerful approach to extending CloudNativePG without modifying the
operator’s core code—akin to PostgreSQL extensions. We welcome community
feedback and contributions to shape this exciting new capability.

### Enhancements

- Add the `dataDurability` option to the `.spec.postgresql.synchronous` stanza,
allowing users to choose between `required` (default) or `preferred`
durability in synchronous replication. (#5878)
- Enable customization of startup, liveness, and readiness probes through the
`.spec.probes` stanza. (#6266)
- Support additional `pg_dump` and `pg_restore` options to enhance database
import flexibility. (#6214)
- Add support for `maxConcurrentReconciles` in the CloudNativePG controller and
set the default to 10, improving the operator's ability to efficiently manage
larger deployments out of the box. (#5678)
- Add the `cnpg.io/userType` label to secrets generated for predefined users,
specifically `superuser` and `app`. (#4392)
- Improved validation for the `spec.schedule` field in ScheduledBackups,
raising warnings for potential misconfigurations. (#5396)
- `cnpg` plugin:
- Enhance the `backup` command to support plugins. (#6045)
- Honor the `User-Agent` header in HTTP requests with the API server. (#6153)

### Bug Fixes

- Ensure the former primary flushes its WAL file queue to the archive before
re-synchronizing as a replica, reducing recovery times and enhancing data
consistency during failovers. (#6141)
- Clean the WAL volume along with the `PGDATA` volume during bootstrap. (#6265)
- Update the operator to set the cluster phase to `Unrecoverable` when
all previously generated `PersistentVolumeClaims` are missing. (#6170)
- Fix the parsing of the `synchronous_standby_names` GUC when
`.spec.postgresql.synchronous.method` is set to `first`. (#5955)
- Resolved a potential race condition when patching certain conditions
in CRD statuses, improving reliability in concurrent updates. (#6328)
- Correct role changes to apply at the transaction level instead of the
database context. (#6064)
- Remove the `primary_slot_name` definition from the `override.conf` file on
the primary to ensure it is always empty. (#6219)
- Configure libpq environment variables, including `PGHOST`, in PgBouncer pods
to enable seamless access to the `pgbouncer` virtual database using `psql`
from within the container. (#6247)
- Remove unnecessary updates to the Cluster status when verifying changes in
the image catalog. (#6277)
- Prevent panic during recovery from an external server without proper backup
configuration. (#6300)
- Resolved a key collision issue in structured logs, where the name field was
inconsistently used to log two distinct values. (#6324)
- Ensure proper quoting of the inRoles field in SQL statements to prevent
syntax errors in generated SQL during role management. (#6346)
- `cnpg` plugin:
- Ensure the `kubectl` context is properly passed in the `psql` command. (#6257)
- Avoid displaying physical backups block when empty with `status` command. (#5998)

### Supported Versions

- **Kubernetes**: 1.32, 1.31, 1.30, and 1.29
- **PostgreSQL**: 17, 16, 15, 14, and 13
- Default image: PostgreSQL 17.2
- Officially dropped support for PostgreSQL 12
- PostgreSQL 13 support ends on November 12, 2025
6 changes: 3 additions & 3 deletions pkg/versions/versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ package versions

const (
// Version is the version of the operator
Version = "1.25.0"
Version = "0.30"

// DefaultImageName is the default image used by the operator to create pods
DefaultImageName = "ghcr.io/cloudnative-pg/postgresql:17.2"

// DefaultOperatorImageName is the default operator image used by the controller in the pods running PostgreSQL
DefaultOperatorImageName = "ghcr.io/cloudnative-pg/cloudnative-pg:1.25.0"
DefaultOperatorImageName = "ghcr.io/cloudnative-pg/cloudnative-pg:0.30"
)

// BuildInfo is a struct containing all the info about the build
Expand All @@ -36,7 +36,7 @@ type BuildInfo struct {

var (
// buildVersion injected during the build
buildVersion = "1.25.0"
buildVersion = "0.30"

// buildCommit injected during the build
buildCommit = "none"
Expand Down
Loading

0 comments on commit 7a9dc0f

Please sign in to comment.