Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e49403c
add
blizni79 Mar 28, 2024
bec36ac
add
blizni79 Mar 29, 2024
541111f
add
3dcadpl May 3, 2024
e9be68a
fix
3dcadpl May 15, 2024
0f900c2
add
blizni79 May 25, 2024
34953fe
Merge branch 'CrunchyData:main' into main
blizni79 Jun 29, 2024
8733f58
add new
3dcadpl Jun 29, 2024
33fe203
add
3dcadpl Jul 15, 2024
01862b3
Update
Dec 31, 2024
1b45b74
Merge branch 'main' into main
blizni79 Dec 31, 2024
712ac9a
Merge branch 'main' of github.com:blizni79/postgres-operator-examples
Dec 31, 2024
432f6b9
Merge branch 'CrunchyData:main' into main
blizni79 Feb 9, 2025
bc12347
add
Apr 18, 2025
79c51f3
Merge branch 'CrunchyData:main' into main
blizni79 Apr 27, 2025
c1d8484
Merge branch 'CrunchyData:main' into main
blizni79 May 23, 2025
3f24bb5
Update
May 27, 2025
66e2a4e
fix accounts
Jun 9, 2025
a64f0fc
fix
Jul 1, 2025
bc2e9b2
Merge branch 'CrunchyData:main' into main
blizni79 Sep 7, 2025
05a0ff8
Usuń aplikację gitlab-prod i dodaj reguły uwierzytelniania do cn-lms-…
Sep 7, 2025
9e48efa
Usuń konfigurację GitLab i dodaj reguły uwierzytelniania dla cn-lms-prod
Sep 8, 2025
4bd2f99
Merge branch 'main' of https://github.com/blizni79/postgres-operator-…
Sep 8, 2025
7bd3e45
Dodaj zasoby dla mixeway-flow w kustomizacji i pliku postgres.yaml
Sep 8, 2025
b5afef5
Dodaj konfigurację dla cn-lms-dev-backup oraz popraw specyfikację sto…
blizni79 Dec 23, 2025
cbf05a0
Aktualizacja Crunchy Data Postgres Operator (PGO) do wersji 6.0.0
blizni79 Dec 25, 2025
d03aea7
Merge remote-tracking branch 'upstream/main'
blizni79 Dec 25, 2025
3c1bb82
Remove Grafana and Prometheus monitoring configurations and update Po…
blizni79 Dec 25, 2025
b027657
Zaktualizuj wersję API Postgres Operatora do v1 oraz wersję PostgreSQ…
blizni79 Dec 25, 2025
36bbd00
Usuń konfigurację dla cn-lms-dev w pliku help.md
blizni79 Dec 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions PLAN_UPGRADE_6.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Plan aktualizacji PGO do wersji 6.0.0

Poniższy plan opisuje kroki niezbędne do aktualizacji operatora Crunchy Data Postgres Operator (PGO) z wersji 5.8.3 do 6.0.0.

## 1. Przygotowanie i Backup
* **Backup danych**: Upewnij się, że wszystkie klastry Postgres mają aktualne backupy (pgBackRest).
* **Backup manifestów**: Zrób kopię obecnego katalogu `postgres-operator`.
```bash
cp -r postgres-operator postgres-operator-backup
```

## 2. Pobranie nowych manifestów (Installer 6.0.0)
Ponieważ dokładne tagi obrazów (np. suffixy buildów) zmieniają się z każdą wersją, najlepiej pobrać oficjalny pakiet instalacyjny dla wersji 6.0.0 z portalu Crunchy Data lub repozytorium GitHub (jeśli dostępne publicznie).

* Pobierz archiwum lub sklonuj repozytorium dla wersji 6.0.0.
* Zlokalizuj katalog `kustomize/install`.

## 3. Aktualizacja CRD (Custom Resource Definitions)
Aktualizacja definicji zasobów jest krytyczna przed aktualizacją samego operatora.

1. Podmień pliki w katalogu `kustomize/install/crd` na te z wersji 6.0.0.
2. Zastosuj nowe CRD (użyj `--server-side` aby uniknąć problemów z wielkością obiektów):
```bash
kubectl apply --server-side -k kustomize/install/crd
```

## 4. Aktualizacja obrazów i konfiguracji Managera
1. **Obrazy**: Zaktualizuj plik `kustomize/install/components/images-by-tag/kustomization.yaml`.
* Znajdź sekcję `images`.
* Podmień tagi na te odpowiadające wersji 6.0.0 (z pobranego installera).
* Przykład (wartości orientacyjne, sprawdź dokładne tagi!):
* `postgres-operator`: `ubi9-6.0.0-0`
* `crunchy-pgbackrest`: `ubi9-2.56.0-<suffix>`
* `crunchy-postgres-17`: `ubi9-17.x-<suffix>`
2. **Manager**: Sprawdź czy plik `kustomize/install/manager/manager.yaml` wymaga zmian w zmiennych środowiskowych (np. nowe flagi feature gates).

## 5. Aplikacja zmian (Upgrade Operatora)
Po zaktualizowaniu plików lokalnych, wdróż zmiany na klaster.

```bash
# Jeśli używasz domyślnej ścieżki instalacji
kubectl apply -k kustomize/install/default
```

## 6. Weryfikacja
1. Sprawdź czy pod PGO zrestartował się i działa poprawnie:
```bash
kubectl -n postgres-operator get pods
kubectl -n postgres-operator logs -l postgres-operator.crunchydata.com/control-plane=postgres-operator
```
2. Operator 6.0.0 powinien automatycznie przejąć kontrolę nad istniejącymi klastrami.
3. Jeśli planujesz upgrade wersji samego Postgresa (np. 16 -> 17), wykonaj to dopiero po upewnieniu się, że PGO 6.0.0 działa stabilnie.

## Uwagi
* Upewnij się, że masz odpowiednie uprawnienia do klastra.
* Wersja 6.0.0 może wprowadzać zmiany w CRD, które są niekompatybilne wstecz (breaking changes), dlatego krok 3 jest kluczowy.
82 changes: 82 additions & 0 deletions helm/install/templates/manager.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "install.labels" . | nindent 4 }}
{{- include "install.clusterLabels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicas }}
strategy: { type: Recreate }
selector:
matchLabels:
{{- include "install.clusterLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "install.clusterLabels" . | nindent 8 }}
{{- include "install.customPodLabels" . | nindent 8 }}
spec:
{{- include "install.imagePullSecrets" . | indent 6 }}
serviceAccountName: {{ include "install.serviceAccountName" . }}
containers:
- name: operator
image: {{ required ".Values.controllerImages.cluster is required" .Values.controllerImages.cluster | quote }}
env:
- name: PGO_INSTALLER
value: helm
- name: PGO_INSTALLER_ORIGIN
value: examples-repo
- name: PGO_CONTROLLER_LEASE_NAME
value: {{ .Values.pgoControllerLeaseName }}
{{- if .Values.envOverride }}
{{- toYaml .Values.envOverride | nindent 10 }}
{{- else -}}
{{- include "install.defaultEnv" . | nindent 10 }}
{{- end }}
{{- if .Values.workers }}
- name: PGO_WORKERS
value: {{ .Values.workers | quote }}
{{- end }}
{{- include "install.relatedImages" . | indent 8 }}
{{- if .Values.disable_check_for_upgrades }}
- name: CHECK_FOR_UPGRADES
value: "true"
{{- if .Values.extraEnv }}
{{- toYaml .Values.extraEnv | nindent 10 }}
{{- end }}
{{- if .Values.resources.controller }}
resources:
{{- toYaml .Values.resources.controller | nindent 10 }}
{{- end }}
securityContext:
seccompProfile:
type: RuntimeDefault
allowPrivilegeEscalation: false
capabilities: { drop: [ALL] }
readOnlyRootFilesystem: true
runAsNonRoot: true
ports:
- containerPort: 8443
name: metrics
livenessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
{{- if .Values.tolerations }}
tolerations:
{{- toYaml .Values.tolerations | nindent 8 }}
{{- end }}
{{- if .Values.affinity }}
affinity:
{{- toYaml .Values.affinity | nindent 8 }}
{{- end }}
31 changes: 31 additions & 0 deletions help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
kubectl apply -k kustomize/install/namespace


kubectl apply --server-side -k kustomize/install/default

kubectl apply -k kustomize/cn-accounts-backup
kubectl delete -k kustomize/cn-accounts-backup

kubectl apply -k kustomize/cn-lms-prod
kubectl delete -k kustomize/cn-lms-dev
kubectl apply -k kustomize/cn-mattermost
kubectl apply -k kustomize/cn-ch-mattermost
kubectl apply -k kustomize/cn-mixeway-flow

kubectl apply -k kustomize/cn-keycloak

kubectl -n postgres-operator get svc --selector=postgres-operator.crunchydata.com/cluster=cn-lms-prod

# usuwanie terminng
kubectl patch pvc postgres-backup-pvc-new -p '{"metadata":{"finalizers":null}}'


kubectl apply -k kustomize/cn-lms-dev-backup

# update
kubectl apply -k kustomize/postgres --dry-run='server'

kubectl delete -k kustomize/cn-lms-dev


kubectl -n postgres-operator annotate postgrescluster cn-lms-dev postgres-operator.crunchydata.com/allow-upgrade="cn-lms-dev-upgrade"
7 changes: 7 additions & 0 deletions kustomize/cn-accounts-backup/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-tcp-microk8s-conf
namespace: ingress
data:
6379: "default/redis:6379"
7 changes: 7 additions & 0 deletions kustomize/cn-accounts-backup/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: postgres-operator

resources:
- postgres.yaml
72 changes: 72 additions & 0 deletions kustomize/cn-accounts-backup/postgres.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
apiVersion: postgres-operator.crunchydata.com/v1beta1
kind: PostgresCluster
metadata:
name: cn-accounts-backup
spec:
image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres-gis:ubi8-16.2-3.4-0
postgresVersion: 16
instances:
- name: instance1
dataVolumeClaimSpec:
accessModes:
- "ReadWriteOnce"
storageClassName: local-path
resources:
requests:
storage: 20Gi
users:
- name: accounts
databases:
- postgres
options: 'SUPERUSER'

service:
metadata:
annotations:
my-annotation: value1
labels:
my-label: value2
type: LoadBalancer

patroni:
dynamicConfiguration:
postgresql:
parameters:
timezone: 'Europe/Warsaw' # Ustawienie strefy czasowej na Warszawę
log_timezone: 'Europe/Warsaw' # Strefa czasowa dla logów
pg_hba:
- "local all postgres peer"
- "hostssl replication _crunchyrepl all cert"
- "hostssl postgres _crunchyrepl all cert"
- "host all _crunchyrepl all reject"
- "host all ccp_monitoring 127.0.0.0/8 scram-sha-256"
- "host all ccp_monitoring ::1/128 scram-sha-256"
- "host all ccp_monitoring all reject"
- "hostssl all _crunchypgbouncer all scram-sha-256"
- "host all _crunchypgbouncer all reject"
- "host all all 0.0.0.0/0 md5" # Wszystkie IP bez SSL
- "hostssl all all all scram-sha-256" # SSL z SCRAM
- "local all all md5"
monitoring:
pgmonitor:
exporter:
image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres-exporter:ubi8-5.6.0-0

# backups:
# pgbackrest:
# image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.51-1
# repos:
# - name: repo1
# schedules:
# full: "0 1 * * 0"
# differential: "0 1 * * 1-6"
# volume:
# volumeClaimSpec:
# accessModes:
# - "ReadWriteOnce"
# resources:
# requests:
# storage: 20Gi
proxy:
pgBouncer:
image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbouncer:ubi8-1.21-3
7 changes: 7 additions & 0 deletions kustomize/cn-ch-mattermost/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: postgres-operator

resources:
- mm-postgres.yaml
50 changes: 50 additions & 0 deletions kustomize/cn-ch-mattermost/mm-postgres.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
apiVersion: postgres-operator.crunchydata.com/v1
kind: PostgresCluster
metadata:
name: mm-mattermost
spec:
postgresVersion: 18
instances:
- name: instance1
dataVolumeClaimSpec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 10Gi
users:
- name: mm-mattermost
databases:
- mm-mattermost
options: 'SUPERUSER'
service:
metadata:
annotations:
my-annotation: mm-mattermost
labels:
my-label: mm-mattermost
type: NodePort
nodePort: 31002
monitoring:
pgmonitor:
exporter: {}
backups:
pgbackrest:
repos:
- name: repo1
volume:
volumeClaimSpec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 20Gi
proxy:
pgBouncer: {}
patroni:
dynamicConfiguration:
postgresql:
pg_hba:
- host mm-mattermost m-mattermost 10.1.77.8/32 md5
- local all all peer
- host all all 0.0.0.0/0 md5
7 changes: 7 additions & 0 deletions kustomize/cn-keycloak/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: postgres-operator

resources:
- postgres.yaml
55 changes: 55 additions & 0 deletions kustomize/cn-keycloak/postgres.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
apiVersion: postgres-operator.crunchydata.com/v1
kind: PostgresCluster
metadata:
name: keycloak
spec:
postgresVersion: 18
instances:
- name: instance1
dataVolumeClaimSpec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 1Gi # Zwiększone dla production
users:
- name: keycloak
databases:
- keycloak
options: 'SUPERUSER'

service:
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb # Lepsze dla production
labels:
app: keycloak-postgres
type: LoadBalancer
# Usuń nodePort - będzie przydzielony automatycznie

patroni:
dynamicConfiguration:
pg_hba:
- "hostssl all all all md5" # Używaj SSL

monitoring:
pgmonitor:
exporter: {}

backups:
pgbackrest:
repos:
- name: repo1
schedules:
full: "0 2 * * 0" # Pełny backup w niedzielę o 2:00
differential: "0 2 * * 1-6" # Różnicowy backup codziennie o 2:00
volume:
volumeClaimSpec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: 1Gi # Większe dla backupów production

proxy:
pgBouncer: {}
8 changes: 8 additions & 0 deletions kustomize/cn-lms-dev-backup/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: postgres-operator

resources:
- recovery-storage.yaml
- postgres.yaml
Loading