Poniższy plan opisuje kroki niezbędne do aktualizacji operatora Crunchy Data Postgres Operator (PGO) z wersji 5.8.3 do 6.0.0.
- Backup danych: Upewnij się, że wszystkie klastry Postgres mają aktualne backupy (pgBackRest).
- Backup manifestów: Zrób kopię obecnego katalogu
postgres-operator.cp -r postgres-operator postgres-operator-backup
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.
Aktualizacja definicji zasobów jest krytyczna przed aktualizacją samego operatora.
- Podmień pliki w katalogu
kustomize/install/crdna te z wersji 6.0.0. - Zastosuj nowe CRD (użyj
--server-sideaby uniknąć problemów z wielkością obiektów):kubectl apply --server-side -k kustomize/install/crd
- 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-0crunchy-pgbackrest:ubi9-2.56.0-<suffix>crunchy-postgres-17:ubi9-17.x-<suffix>
- Znajdź sekcję
- Manager: Sprawdź czy plik
kustomize/install/manager/manager.yamlwymaga zmian w zmiennych środowiskowych (np. nowe flagi feature gates).
Po zaktualizowaniu plików lokalnych, wdróż zmiany na klaster.
# Jeśli używasz domyślnej ścieżki instalacji
kubectl apply -k kustomize/install/default- Sprawdź czy pod PGO zrestartował się i działa poprawnie:
kubectl -n postgres-operator get pods kubectl -n postgres-operator logs -l postgres-operator.crunchydata.com/control-plane=postgres-operator
- Operator 6.0.0 powinien automatycznie przejąć kontrolę nad istniejącymi klastrami.
- Jeśli planujesz upgrade wersji samego Postgresa (np. 16 -> 17), wykonaj to dopiero po upewnieniu się, że PGO 6.0.0 działa stabilnie.
- 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.