5.1 KiB
Runbook Rollback — Integrasi OpenMetadata 2.0.2 ke deploy/
Dibuat: 2026-09-16 · Tugas: merge-om20x (subtask 01)
Tag titik kembali: pre-merge-om20x @ 5627353
Runbook ini adalah dokumen yang ditulis tangan (bukan keluaran uji otomatis), sengaja
diletakkan di deploy/output/ mengikuti penugasan subtask 01. Isinya harus tetap
akurat selama integrasi berlangsung.
1. Kapan runbook ini dipakai
Saat integrasi ke OpenMetadata 2.0.2 + OpenSearch 3.x + Airflow ber-plugin gagal dan
kita memutuskan kembali ke kondisi 1.13.1 yang stabil (sebelumnya gate Fase 1-6 hijau,
test-verification.sh = 60 PASS / 0 FAIL / 2 SKIP).
2. Kondisi baseline (terverifikasi sebelum perubahan apa pun)
| Aspek | Nilai |
|---|---|
| git HEAD | 5627353 (tag pre-merge-om20x) |
| OpenMetadata server | 1.13.1 (openmetadata/server:1.13.1) |
| OpenSearch | 2.19.6 (opensearchproject/opensearch:2.19.6) |
| Airflow image | sicabe/airflow:3.3.1-slim (id 15ae04b69228), Airflow 3.3.1 |
| Plugin OpenMetadata di Airflow | TIDAK ADA — /api/v1/openmetadata/health → 404 |
| Data OM | database openmetadata_db di volume sicabe_postgres-data |
| Data OpenSearch | tidak di volume — ada di layer container (index derived) |
Catatan penting soal "plugin tidak ada": di Airflow deploy,
/pluginsv2/api/v2/openmetadata/health-auth menjawab 200 tetapi content-type: text/html
(HTML aplikasi Airflow) — itu fallback UI, bukan respons plugin. Bukti plugin absen
adalah /api/v1/openmetadata/health → 404. Jangan tertipu angka 200 di path
/pluginsv2/.
3. Cara memverifikasi kita benar-benar sudah kembali ke baseline
cd /home/broto/sicabe-doc
git rev-parse --short HEAD # harus 5627353 (atau turunannya yg setara)
docker inspect sicabe-openmetadata --format '{{.Config.Image}}' # openmetadata/server:1.13.1
docker inspect sicabe-opensearch --format '{{.Config.Image}}' # opensearchproject/opensearch:2.19.6
docker inspect sicabe-airflow-webserver --format '{{.Config.Image}}' # sicabe/airflow:3.3.1-slim
curl -s -o /dev/null -w '%{http_code}\n' -u "admin:$AIRFLOW_ADMIN_PASSWORD" \
http://localhost:12082/api/v1/openmetadata/health # harus 404
cd deploy && ./test-verification.sh # harus 60 PASS / 0 FAIL / 2 SKIP
4. Langkah rollback
4.1 Kembalikan berkas konfigurasi
cd /home/broto/sicabe-doc
git checkout pre-merge-om20x -- deploy/ docs/
git status -s # tinjau: hanya berkas deploy/docs yang kembali
Jangan git reset --hard — commit hasil eksperimen (f47945d, 5627353) dan
experiments/om20x/ tidak perlu ikut hilang.
4.2 Nyalakan ulang container lama
cd deploy
set -a && . ./.env && set +a
docker compose --profile all up -d --force-recreate \
openmetadata-opensearch openmetadata-migrate openmetadata-server \
airflow-init airflow-webserver airflow-scheduler airflow-dag-processor
Image lama tidak boleh dihapus: openmetadata/server:1.13.1,
opensearchproject/opensearch:2.19.6, sicabe/airflow:3.3.1-slim.
OpenSearch akan membuat index baru dari nol saat container dibuat ulang
(tidak ada volume; index memang derived dan OM akan mem-populasinya kembali).
4.3 Bila database OM sudah telanjur dikosongkan (subtask 12)
Setelah openmetadata_db di-drop, data katalog OM tidak bisa dipulihkan dari
deploy — tidak ada dump (keputusan sadar: jaring pengaman cukup tag git). Yang bisa
dilakukan: membuat ulang database kosong lalu membiarkan OM 1.13.1 membangun skemanya,
lalu mengisi ulang katalog dari sumber yang reproducible:
# buat ulang database kosong (pola sama dgn deploy/config/postgres/init/01-create-dbs.sh)
docker exec sicabe-postgres psql -U postgres -c "DROP DATABASE IF EXISTS openmetadata_db;"
docker exec sicabe-postgres psql -U postgres -c "CREATE DATABASE openmetadata_db OWNER openmetadata;"
cd deploy
docker compose --profile all up -d --force-recreate openmetadata-migrate # migrate schema 1.13.1
docker compose --profile all up -d openmetadata-server
./scripts/ingest-openmetadata.sh # katalog Trino + lineage dbt
# lalu jalankan DAG utk mengirim ulang hasil Great Expectations
5. Yang bisa dan tidak bisa dipulihkan (jujur)
| Bisa dipulihkan | Tidak bisa dipulihkan |
|---|---|
| Versi komponen (kembali 1.13.1 / 2.19.6 / image slim) | Isi katalog OM bila DB sudah di-drop (reproducible, bukan mustahil) |
Konfigurasi (deploy/, docs/) via tag git |
Riwayat DQ (test case + hasil) — dibangun ulang oleh DAG |
| Lineage dbt | Dashboard/artefak yang hanya ada di OM |
Alasan ini dapat diterima: seluruh isi katalog berasal dari
scripts/ingest-openmetadata.sh + DAG sicabe_batch_daily, jadi bisa dibangun ulang.
6. Titik tidak-balik (penting)
| Setelah subtask | Kondisi |
|---|---|
| 05 (+07) | Airflow memakai image ber-plugin; rollback = kembalikan 4 baris AIRFLOW_IMAGE |
| 10 | OpenSearch 3.x; index lama sudah hilang saat container dibuat ulang |
| 12 | openmetadata_db di-drop → satu-satunya titik yang kehilangan data |
| 13-15 | OM 2.0.2 jalan dgn password admin dari .env |