Skip to content

Commit

Permalink
feat: Use serviceAccountTemplate from values (#64)
Browse files Browse the repository at this point in the history
Signed-off-by: Philippe Noël <21990816+philippemnoel@users.noreply.github.com>

feat: Default to PG17 again (#69)

feat: Upgrade ParadeDB to 0.13.1 (#63)
Signed-off-by: Itay Grudev <itay@verito.digital>

feat: Upgrade to 0.13.2 (#72)

Signed-off-by: Itay Grudev <itay@verito.digital>
  • Loading branch information
itay-grudev authored and philippemnoel committed Feb 4, 2025
1 parent 7a23e40 commit d257d70
Show file tree
Hide file tree
Showing 23 changed files with 76 additions and 180 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/paradedb-test-eks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
awslocal configure set region us-east-1
# As of writing, the latest Kubernetes version available on LocalStack EKS
# is 1.29. CloudNativePG requires version 1.25+
# is 1.29. CloudNativePG requires version 1.29+
- name: Create the LocalStack AWS EKS Cluster
run: |
awslocal --endpoint-url=http://localhost:4566 eks create-cluster \
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

The [ParadeDB](https://github.com/paradedb/paradedb) Helm Chart is based on the official [CloudNativePG Helm Chart](https://cloudnative-pg.io/). CloudNativePG is a Kubernetes operator that manages the full lifecycle of a highly available PostgreSQL database cluster with a primary/standby architecture using Postgres streaming (physical) replication.

Kubernetes, and specifically the CloudNativePG operator, is the recommended approach for deploying ParadeDB in production, with high availability. ParadeDB also provides a [Docker image](https://hub.docker.com/r/paradedb/paradedb) and [prebuilt binaries](https://github.com/paradedb/paradedb/releases) for Debian, Ubuntu and Red Hat Enterprise Linux.
Kubernetes, and specifically the CloudNativePG operator, is the recommended approach for deploying ParadeDB in production, with high availability. ParadeDB also provides a [Docker image](https://hub.docker.com/r/paradedb/paradedb) and [prebuilt binaries](https://github.com/paradedb/paradedb/releases) for Debian, Ubuntu, Red Hat Enterprise Linux, and macOS.

The ParadeDB Helm Chart supports Postgres 13+ and ships with Postgres 17 by default.

Expand All @@ -40,13 +40,13 @@ The chart is also available on [Artifact Hub](https://artifacthub.io/packages/he

The most reliable way to run ParadeDB in production is with ParadeDB BYOC, an end-to-end managed solution that runs in the customer’s cloud account. It deploys on managed Kubernetes services and uses the ParadeDB Helm Chart.

ParadeDB BYOC includes built-in integration with managed PostgreSQL services, such as AWS RDS, via logical replication. It also provides monitoring, logging and alerting through Prometheus and Grafana. The ParadeDB team manages the underlying infrastructure and lifecycle of the cluster.
ParadeDB BYOC includes built-in integration with managed PostgreSQL services, such as AWS RDS and GCP CloudSQL, via logical replication. It also provides monitoring, logging and alerting through Prometheus and Grafana. The ParadeDB team manages the underlying infrastructure and lifecycle of the cluster.

You can read more about the optimal architecture for running ParadeDB in production [here](https://docs.paradedb.com/deploy/overview) and you can contact sales [here](mailto:sales@paradedb.com).

### Self-Hosted

First, install [Helm](https://helm.sh/docs/intro/install/). The following steps assume you have a Kubernetes cluster running v1.25+. If you are testing locally, we recommend using [Minikube](https://minikube.sigs.k8s.io/docs/start/).
First, install [Helm](https://helm.sh/docs/intro/install/). The following steps assume you have a Kubernetes cluster running v1.29+. If you are testing locally, we recommend using [Minikube](https://minikube.sigs.k8s.io/docs/start/).

#### Monitoring

Expand Down
4 changes: 2 additions & 2 deletions charts/paradedb/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ icon: https://raw.githubusercontent.com/paradedb/paradedb/main/docs/logo/light.s
type: application

# The Chart version, set in the publish CI workflow from GitHub Actions Variables
# We default to v0.12.2 for testing and local development
version: 0.12.2
# We default to v0.13.2 for testing and local development
version: 0.13.2

sources:
- https://github.com/paradedb/charts
Expand Down
10 changes: 5 additions & 5 deletions charts/paradedb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The [ParadeDB](https://github.com/paradedb/paradedb) Helm Chart is based on the official [CloudNativePG Helm Chart](https://cloudnative-pg.io/). CloudNativePG is a Kubernetes operator that manages the full lifecycle of a highly available PostgreSQL database cluster with a primary/standby architecture using Postgres streaming (physical) replication.

Kubernetes, and specifically the CloudNativePG operator, is the recommended approach for deploying ParadeDB in production, with high availability. ParadeDB also provides a [Docker image](https://hub.docker.com/r/paradedb/paradedb) and [prebuilt binaries](https://github.com/paradedb/paradedb/releases) for Debian, Ubuntu and Red Hat Enterprise Linux.
Kubernetes, and specifically the CloudNativePG operator, is the recommended approach for deploying ParadeDB in production, with high availability. ParadeDB also provides a [Docker image](https://hub.docker.com/r/paradedb/paradedb) and [prebuilt binaries](https://github.com/paradedb/paradedb/releases) for Debian, Ubuntu, Red Hat Enterprise Linux, and macOS.

The ParadeDB Helm Chart supports Postgres 13+ and ships with Postgres 17 by default.

Expand All @@ -14,13 +14,13 @@ The chart is also available on [Artifact Hub](https://artifacthub.io/packages/he

The most reliable way to run ParadeDB in production is with ParadeDB BYOC, an end-to-end managed solution that runs in the customer’s cloud account. It deploys on managed Kubernetes services and uses the ParadeDB Helm Chart.

ParadeDB BYOC includes built-in integration with managed PostgreSQL services, such as AWS RDS, via logical replication. It also provides monitoring, logging and alerting through Prometheus and Grafana. The ParadeDB team manages the underlying infrastructure and lifecycle of the cluster.
ParadeDB BYOC includes built-in integration with managed PostgreSQL services, such as AWS RDS and GCP CloudSQL, via logical replication. It also provides monitoring, logging and alerting through Prometheus and Grafana. The ParadeDB team manages the underlying infrastructure and lifecycle of the cluster.

You can read more about the optimal architecture for running ParadeDB in production [here](https://docs.paradedb.com/deploy/overview) and you can contact sales [here](mailto:sales@paradedb.com).

### Self-Hosted

First, install [Helm](https://helm.sh/docs/intro/install/). The following steps assume you have a Kubernetes cluster running v1.25+. If you are testing locally, we recommend using [Minikube](https://minikube.sigs.k8s.io/docs/start/).
First, install [Helm](https://helm.sh/docs/intro/install/). The following steps assume you have a Kubernetes cluster running v1.29+. If you are testing locally, we recommend using [Minikube](https://minikube.sigs.k8s.io/docs/start/).

#### Monitoring

Expand Down Expand Up @@ -312,8 +312,8 @@ refer to the [CloudNativePG Documentation](https://cloudnative-pg.io/documentat
| recovery.secret.create | bool | `true` | Whether to create a secret for the backup credentials |
| recovery.secret.name | string | `""` | Name of the backup credentials secret |
| type | string | `"paradedb"` | Type of the CNPG database. Available types: * `paradedb` * `paradedb-enterprise` |
| version.paradedb | string | `"0.12.2"` | We default to v0.12.2 for testing and local development |
| version.postgresql | string | `"16"` | PostgreSQL major version to use |
| version.paradedb | string | `"0.13.2"` | We default to v0.13.2 for testing and local development |
| version.postgresql | string | `"17"` | PostgreSQL major version to use |
| poolers[].name | string | `` | Name of the pooler resource |
| poolers[].instances | number | `1` | The number of replicas we want |
| poolers[].type | [PoolerType][PoolerType] | `rw` | Type of service to forward traffic to. Default: `rw`. |
Expand Down
6 changes: 3 additions & 3 deletions charts/paradedb/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The [ParadeDB](https://github.com/paradedb/paradedb) Helm Chart is based on the official [CloudNativePG Helm Chart](https://cloudnative-pg.io/). CloudNativePG is a Kubernetes operator that manages the full lifecycle of a highly available PostgreSQL database cluster with a primary/standby architecture using Postgres streaming (physical) replication.

Kubernetes, and specifically the CloudNativePG operator, is the recommended approach for deploying ParadeDB in production, with high availability. ParadeDB also provides a [Docker image](https://hub.docker.com/r/paradedb/paradedb) and [prebuilt binaries](https://github.com/paradedb/paradedb/releases) for Debian, Ubuntu and Red Hat Enterprise Linux.
Kubernetes, and specifically the CloudNativePG operator, is the recommended approach for deploying ParadeDB in production, with high availability. ParadeDB also provides a [Docker image](https://hub.docker.com/r/paradedb/paradedb) and [prebuilt binaries](https://github.com/paradedb/paradedb/releases) for Debian, Ubuntu, Red Hat Enterprise Linux, and macOS.

The ParadeDB Helm Chart supports Postgres 13+ and ships with Postgres 17 by default.

Expand All @@ -14,13 +14,13 @@ The chart is also available on [Artifact Hub](https://artifacthub.io/packages/he

The most reliable way to run ParadeDB in production is with ParadeDB BYOC, an end-to-end managed solution that runs in the customer’s cloud account. It deploys on managed Kubernetes services and uses the ParadeDB Helm Chart.

ParadeDB BYOC includes built-in integration with managed PostgreSQL services, such as AWS RDS, via logical replication. It also provides monitoring, logging and alerting through Prometheus and Grafana. The ParadeDB team manages the underlying infrastructure and lifecycle of the cluster.
ParadeDB BYOC includes built-in integration with managed PostgreSQL services, such as AWS RDS and GCP CloudSQL, via logical replication. It also provides monitoring, logging and alerting through Prometheus and Grafana. The ParadeDB team manages the underlying infrastructure and lifecycle of the cluster.

You can read more about the optimal architecture for running ParadeDB in production [here](https://docs.paradedb.com/deploy/overview) and you can contact sales [here](mailto:sales@paradedb.com).

### Self-Hosted

First, install [Helm](https://helm.sh/docs/intro/install/). The following steps assume you have a Kubernetes cluster running v1.25+. If you are testing locally, we recommend using [Minikube](https://minikube.sigs.k8s.io/docs/start/).
First, install [Helm](https://helm.sh/docs/intro/install/). The following steps assume you have a Kubernetes cluster running v1.29+. If you are testing locally, we recommend using [Minikube](https://minikube.sigs.k8s.io/docs/start/).

#### Monitoring

Expand Down
2 changes: 1 addition & 1 deletion charts/paradedb/examples/image-catalog-ref.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ type: postgresql
mode: standalone
version:
major: "17"
paradedb: "0.12.2"
paradedb: "0.13.2"
cluster:
instances: 1
imageCatalogRef:
Expand Down
2 changes: 1 addition & 1 deletion charts/paradedb/examples/image-catalog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ type: postgresql
mode: standalone
version:
major: "17"
paradedb: "0.12.2"
paradedb: "0.13.2"
cluster:
instances: 1
backups:
Expand Down
4 changes: 2 additions & 2 deletions charts/paradedb/examples/paradedb.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
type: paradedb
mode: standalone
version:
postgresql: "17.0"
paradedb: "0.12.2"
postgresql: "17"
paradedb: "0.13.2"
cluster:
instances: 1
backups:
Expand Down
5 changes: 4 additions & 1 deletion charts/paradedb/templates/_bootstrap.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ bootstrap:
{{- printf "- %s" . | nindent 6 }}
{{- end -}}
{{- end }}
{{- if or (eq .Values.type "paradedb") (eq .Values.type "paradedb-enterprise") (not (empty .Values.cluster.initdb.postInitApplicationSQL)) }}
postInitApplicationSQL:
{{- if or (eq .Values.type "paradedb") (eq .Values.type "paradedb-enterprise") }}
- CREATE EXTENSION IF NOT EXISTS pg_search;
Expand All @@ -35,7 +36,9 @@ bootstrap:
{{- range .postInitApplicationSQL }}
{{- printf "- %s" . | nindent 6 }}
{{- end -}}
{{- end }}
{{- end -}}
{{- end }}
{{- if or (eq .Values.type "paradedb") (eq .Values.type "paradedb-enterprise") (not (empty .Values.cluster.initdb.postInitTemplateSQL)) }}
postInitTemplateSQL:
{{- if or (eq .Values.type "paradedb") (eq .Values.type "paradedb-enterprise") }}
- CREATE EXTENSION IF NOT EXISTS pg_search;
Expand Down
7 changes: 2 additions & 5 deletions charts/paradedb/templates/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ spec:
{{ end }}
enablePDB: {{ .Values.cluster.enablePDB }}
postgresql:
{{- if or (eq .Values.type "timescaledb") (not (empty .Values.cluster.postgresql.shared_preload_libraries)) }}
{{- if or (eq .Values.type "paradedb") (eq .Values.type "paradedb-enterprise") (not (empty .Values.cluster.postgresql.shared_preload_libraries)) }}
shared_preload_libraries:
{{- if or (eq .Values.type "paradedb") (eq .Values.type "paradedb-enterprise") }}
- pg_search
Expand All @@ -76,7 +76,6 @@ spec:
{{- toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.cluster.postgresql.pg_ident }}

pg_ident:
{{- toYaml . | nindent 6 }}
{{- end }}
Expand All @@ -86,9 +85,7 @@ spec:
{{ end }}
{{- with .Values.cluster.postgresql.parameters }}
parameters:
{{ with .parameters }}
{{- toYaml . | nindent 6 }}
{{ end }}
{{- toYaml . | nindent 6 }}
cron.database_name: postgres
{{ end }}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
type: paradedb-enterprise
mode: standalone
version:
major: "16"
paradedb: "0.12.2"
major: "17"
paradedb: "0.13.2"
cluster:
instances: 1
storage:
Expand Down
18 changes: 5 additions & 13 deletions charts/paradedb/test/paradedb-enterprise/02-paradedb_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,15 @@ spec:
psql "$DB_URI" <<-EOSQL
CALL paradedb.create_bm25_test_table(
schema_name => 'public',
table_name => 'mock_items'
);
CALL paradedb.create_bm25(
index_name => 'search_idx',
table_name => 'mock_items',
key_field => 'id',
text_fields => paradedb.field('description') || paradedb.field('category'),
numeric_fields => paradedb.field('rating'),
boolean_fields => paradedb.field('in_stock'),
datetime_fields => paradedb.field('created_at'),
json_fields => paradedb.field('metadata'),
range_fields => paradedb.field('weight_range')
table_name => 'mock_items_paradedb_enterprise'
);
CREATE INDEX search_idx_paradedb_enterprise_ ON mock_items_paradedb_enterprise
USING bm25 (id, description, category, rating, in_stock, created_at, metadata, weight_range)
WITH (key_field='id');
EOSQL
RESULT=$(psql "$DB_URI" -t) <<-EOSQL
SELECT description
FROM mock_items
FROM mock_items_paradedb_enterprise
WHERE description @@@ '"bluetooth speaker"~1'
LIMIT 1;
EOSQL
Expand Down
11 changes: 10 additions & 1 deletion charts/paradedb/test/paradedb-enterprise/chainsaw-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,22 @@ spec:
- assert:
file: 02-paradedb_test-assert.yaml
catch:
- describe:
apiVersion: v1
kind: Pod
- describe:
apiVersion: batch/v1
kind: Job
- podLogs:
selector: batch.kubernetes.io/job-name=data-test
selector: cnpg.io/cluster=paradedb-ncc-1701-d
- name: Cleanup
try:
- script:
content: |
helm uninstall --namespace $NAMESPACE paradedb-ncc-1701-d
catch:
- describe:
apiVersion: v1
kind: Pod
- podLogs:
selector: cnpg.io/cluster=paradedb-ncc-1701-d
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
type: paradedb
mode: standalone
version:
major: "16"
paradedb: "0.12.2"
major: "17"
paradedb: "0.13.2"
cluster:
instances: 2
storage:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,9 @@ spec:
psql "$DB_URI" <<-EOSQL
CALL paradedb.create_bm25_test_table(
schema_name => 'public',
table_name => 'mock_items'
);
CALL paradedb.create_bm25(
index_name => 'search_idx',
table_name => 'mock_items',
key_field => 'id',
text_fields => paradedb.field('description') || paradedb.field('category'),
numeric_fields => paradedb.field('rating'),
boolean_fields => paradedb.field('in_stock'),
datetime_fields => paradedb.field('created_at'),
json_fields => paradedb.field('metadata'),
range_fields => paradedb.field('weight_range')
table_name => 'mock_items_paradedb_minio_backup_restore'
);
CREATE INDEX search_idx_paradedb_minio_backup_restore ON mock_items_paradedb_minio_backup_restore
USING bm25 (id, description, category, rating, in_stock, created_at, metadata, weight_range)
WITH (key_field='id');
EOSQL
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
apk --no-cache add postgresql-client
RESULT=$(psql "$DB_URI" -t) <<-EOSQL
SELECT description
FROM mock_items
FROM mock_items_paradedb_minio_backup_restore
WHERE description @@@ '"bluetooth speaker"~1'
LIMIT 1;
EOSQL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,16 +81,40 @@ spec:
kind: Job
- podLogs:
selector: batch.kubernetes.io/job-name=data-test
- name: Create a backup
- name: Start a backup
try:
- apply:
file: ./05-backup.yaml
- assert:
file: ./05-backup_running-assert.yaml
catch:
- describe:
apiVersion: postgresql.cnpg.io/v1
kind: Backup
- podLogs:
selector: cnpg.io/cluster=paradedb
- describe:
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
- podLogs:
selector: cnpg.io/cluster=paradedb-paradedb
- name: Complete a backup
try:
- apply:
file: ./05-checkpoint.yaml
- assert:
file: ./05-backup_completed-assert.yaml
catch:
- describe:
apiVersion: postgresql.cnpg.io/v1
kind: Backup
- podLogs:
selector: cnpg.io/cluster=paradedb
- describe:
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
- podLogs:
selector: cnpg.io/cluster=paradedb-paradedb
- name: Write more data to the database after the backup
try:
- apply:
Expand Down

This file was deleted.

16 changes: 0 additions & 16 deletions charts/paradedb/test/scheduledbackups/00-minio_cleanup.yaml

This file was deleted.

This file was deleted.

Loading

0 comments on commit d257d70

Please sign in to comment.