Skip to content

Commit b5f77d1

Browse files
committed
add cloudnative-pg bundle and generated chart
Signed-off-by: Joe Lanford <[email protected]>
1 parent 9514e90 commit b5f77d1

File tree

64 files changed

+68371
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+68371
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
annotations:
2+
alm-examples: |-
3+
[
4+
{
5+
"apiVersion": "postgresql.cnpg.io/v1",
6+
"kind": "Backup",
7+
"metadata": {
8+
"name": "backup-sample"
9+
},
10+
"spec": {
11+
"cluster": {
12+
"name": "cluster-sample"
13+
}
14+
}
15+
},
16+
{
17+
"apiVersion": "postgresql.cnpg.io/v1",
18+
"kind": "Cluster",
19+
"metadata": {
20+
"name": "cluster-sample"
21+
},
22+
"spec": {
23+
"instances": 3,
24+
"logLevel": "info",
25+
"primaryUpdateStrategy": "unsupervised",
26+
"storage": {
27+
"size": "1Gi"
28+
},
29+
"walStorage": {
30+
"size": "1Gi"
31+
}
32+
}
33+
},
34+
{
35+
"apiVersion": "postgresql.cnpg.io/v1",
36+
"kind": "Pooler",
37+
"metadata": {
38+
"name": "pooler-sample-rw"
39+
},
40+
"spec": {
41+
"cluster": {
42+
"name": "cluster-sample"
43+
},
44+
"instances": 1,
45+
"pgbouncer": {
46+
"poolMode": "session"
47+
},
48+
"type": "rw"
49+
}
50+
},
51+
{
52+
"apiVersion": "postgresql.cnpg.io/v1",
53+
"kind": "ScheduledBackup",
54+
"metadata": {
55+
"name": "scheduledbackup-sample"
56+
},
57+
"spec": {
58+
"cluster": {
59+
"name": "cluster-sample"
60+
},
61+
"schedule": "0 0 0 * * *"
62+
}
63+
}
64+
]
65+
capabilities: Auto Pilot
66+
categories: Database
67+
certified: "true"
68+
containerImage: ghcr.io/cloudnative-pg/cloudnative-pg@sha256:22fd4647a25a4a97bfa36f322b7188b7fdbce1db28f4197d4d2c84422bebdc08
69+
createdAt: "2024-10-16T16:15:22Z"
70+
description: CloudNativePG is an open source operator designed to manage highly
71+
available PostgreSQL databases with a primary/standby architecture on any supported
72+
Kubernetes cluster.
73+
features.operators.openshift.io/disconnected: "true"
74+
features.operators.openshift.io/fips-compliant: "false"
75+
features.operators.openshift.io/proxy-aware: "false"
76+
features.operators.openshift.io/tls-profiles: "false"
77+
features.operators.openshift.io/token-auth-aws: "false"
78+
features.operators.openshift.io/token-auth-azure: "false"
79+
features.operators.openshift.io/token-auth-gcp: "false"
80+
olm.skipRange: '>= 1.18.0 < 1.24.1'
81+
operators.operatorframework.io/builder: operator-sdk-v1.37.0
82+
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
83+
repository: https://github.com/cloudnative-pg/cloudnative-pg
84+
support: Community
85+
apiVersion: v2
86+
description: |
87+
Main features:
88+
89+
* Direct integration with Kubernetes API server for High Availability,
90+
without requiring an external tool
91+
* Self-Healing capability, through:
92+
* failover of the primary instance by promoting the most aligned replica
93+
* automated recreation of a replica
94+
* Planned switchover of the primary instance by promoting a selected replica
95+
* Scale up/down capabilities
96+
* Definition of an arbitrary number of instances (minimum 1 - one primary server)
97+
* Definition of the *read-write* service, to connect your applications to the only primary server of the cluster
98+
* Definition of the *read-only* service, to connect your applications to any of the instances for reading workloads
99+
* Declarative management of PostgreSQL configuration
100+
* Declarative management of Postgres roles, users and groups
101+
* Support for Local Persistent Volumes with PVC templates
102+
* Reuse of Persistent Volumes storage in Pods
103+
* Separate volume for WAL files
104+
* Rolling updates for PostgreSQL minor versions
105+
* In-place or rolling updates for operator upgrades
106+
* TLS connections and client certificate authentication
107+
* Support for custom TLS certificates (including integration with cert-manager)
108+
* Continuous WAL archiving to an object store (AWS S3 and S3-compatible, Azure Blob Storage, and Google Cloud Storage)
109+
* Backups on volume snapshots (where supported by the underlying storage classes)
110+
* Backups on object stores (AWS S3 and S3-compatible, Azure Blob Storage, and Google Cloud Storage)
111+
* Full recovery and Point-In-Time recovery from an existing backup on volume snapshots or object stores
112+
* Offline import of existing PostgreSQL databases, including major upgrades of PostgreSQL
113+
* Fencing of an entire PostgreSQL cluster, or a subset of the instances in a declarative way
114+
* Hibernation of a PostgreSQL cluster in a declarative way
115+
* Support for Synchronous Replicas
116+
* Support for HA physical replication slots at cluster level
117+
* Backup from a standby
118+
* Backup retention policies (based on recovery window, only on object stores)
119+
* Parallel WAL archiving and restore to allow the database to keep up with WAL
120+
generation on high write systems
121+
* Support tagging backup files uploaded to an object store to enable optional
122+
retention management at the object store layer Replica clusters for
123+
* PostgreSQL deployments across multiple Kubernetes
124+
clusters, enabling private, public, hybrid, and multi-cloud architectures
125+
* Connection pooling with PgBouncer
126+
* Support for node affinity via `nodeSelector`
127+
* Native customizable exporter of user defined metrics for Prometheus through the `metrics` port (9187)
128+
* Standard output logging of PostgreSQL error messages in JSON format
129+
* Automatically set `readOnlyRootFilesystem` security context for pods
130+
* `cnpg` plugin for `kubectl`
131+
* Simple bind and search+bind LDAP client authentication
132+
* Multi-arch format container images
133+
keywords:
134+
- postgresql
135+
- postgres
136+
- database
137+
- sql
138+
- cloudnativepg
139+
- cloudnative-pg
140+
- cnpg
141+
kubeVersion: '>= 1.23.0'
142+
maintainers:
143+
144+
name: Jonathan Gonzalez V.
145+
146+
name: Jonathan Battiato
147+
148+
name: Niccolo Fei
149+
150+
name: Gabriele Bartolini
151+
name: cloudnative-pg
152+
sources:
153+
- https://cloudnative-pg.io/
154+
- https://cloudnative-pg.io/docs/
155+
version: 1.24.1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: MutatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: mbackup.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /mutate-postgresql-cnpg-io-v1-backup
15+
port: 443
16+
failurePolicy: Fail
17+
name: mbackup.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- backups
28+
sideEffects: None
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: MutatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: mcluster.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /mutate-postgresql-cnpg-io-v1-cluster
15+
port: 443
16+
failurePolicy: Fail
17+
name: mcluster.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- clusters
28+
sideEffects: None
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: MutatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: mscheduledbackup.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /mutate-postgresql-cnpg-io-v1-scheduledbackup
15+
port: 443
16+
failurePolicy: Fail
17+
name: mscheduledbackup.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- scheduledbackups
28+
sideEffects: None
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: ValidatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: vbackup.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /validate-postgresql-cnpg-io-v1-backup
15+
port: 443
16+
failurePolicy: Fail
17+
name: vbackup.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- backups
28+
sideEffects: None
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: ValidatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: vcluster.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /validate-postgresql-cnpg-io-v1-cluster
15+
port: 443
16+
failurePolicy: Fail
17+
name: vcluster.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- clusters
28+
sideEffects: None
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: ValidatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: vpooler.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /validate-postgresql-cnpg-io-v1-pooler
15+
port: 443
16+
failurePolicy: Fail
17+
name: vpooler.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- poolers
28+
sideEffects: None
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: admissionregistration.k8s.io/v1
2+
kind: ValidatingWebhookConfiguration
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: '{{ .Release.Namespace }}/cnpg-controller-manager'
6+
name: vscheduledbackup.cnpg.io
7+
webhooks:
8+
- admissionReviewVersions:
9+
- v1
10+
clientConfig:
11+
service:
12+
name: cnpg-controller-manager-service
13+
namespace: '{{ .Release.Namespace }}'
14+
path: /validate-postgresql-cnpg-io-v1-scheduledbackup
15+
port: 443
16+
failurePolicy: Fail
17+
name: vscheduledbackup.cnpg.io
18+
rules:
19+
- apiGroups:
20+
- postgresql.cnpg.io
21+
apiVersions:
22+
- v1
23+
operations:
24+
- CREATE
25+
- UPDATE
26+
resources:
27+
- scheduledbackups
28+
sideEffects: None

0 commit comments

Comments
 (0)