Mengupgrade Apigee hybrid ke versi 1.13

Prosedur ini mencakup upgrade dari Apigee Hybrid versi 1.12.x ke Apigee Hybrid versi 1.13.4 dan dari rilis Hybrid 1.13.x sebelumnya ke versi 1.13.4.

Gunakan prosedur yang sama untuk upgrade versi minor (misalnya, versi 1.12 ke 1.13) dan untuk upgrade rilis patch (misalnya, 1.13.0 ke 1.13.4).

Jika Anda mengupgrade dari Apigee Hybrid versi 1.11 atau yang lebih lama, Anda harus mengupgrade terlebih dahulu ke Hybrid versi 1.12 sebelum mengupgrade ke versi 1.13.4. Lihat petunjuk untuk Mengupgrade Apigee Hybrid ke versi 1.12.

Perubahan dari Apigee Hybrid v1.12

Perhatikan perubahan berikut:

  • apigee-operator di namespace Apigee: Mulai versi 1.13, apigee-operator berjalan di namespace Kubernetes yang sama dengan komponen Apigee Hybrid lainnya, apigee secara default. Anda dapat memberikan nama apa pun untuk namespace. Pada versi sebelumnya, apigee-operator harus berjalan di namespace-nya sendiri, apigee-system.
  • Anthos (di bare metal atau VMware) kini menjadi Google Distributed Cloud (di bare metal atau VMware): Untuk mengetahui informasi selengkapnya, lihat ringkasan produk untuk Google Distributed Cloud untuk bare metal dan Google Distributed Cloud untuk VMware.
  • Pemeriksaan instansiasi class yang lebih ketat: Mulai versi 1.13.3, Apigee Hybrid, kebijakan JavaCallout kini menyertakan keamanan tambahan selama instansiasi class Java. Langkah keamanan yang ditingkatkan ini mencegah penerapan kebijakan yang secara langsung atau tidak langsung mencoba melakukan tindakan yang memerlukan izin yang tidak diizinkan.

    Dalam sebagian besar kasus, kebijakan yang ada akan terus berfungsi seperti yang diharapkan tanpa masalah apa pun. Namun, ada kemungkinan kebijakan yang mengandalkan library pihak ketiga, atau kebijakan dengan kode kustom yang secara tidak langsung memicu operasi yang memerlukan izin yang lebih tinggi, dapat terpengaruh.

Prasyarat

Sebelum mengupgrade ke hybrid versi 1.13, pastikan penginstalan Anda memenuhi persyaratan berikut:

Ringkasan upgrade ke versi 1.13.4

Prosedur untuk mengupgrade Apigee Hybrid diatur dalam bagian berikut:

  1. Bersiap untuk mengupgrade.
  2. Instal hybrid runtime versi 1.13.4.

Bersiap untuk mengupgrade ke versi 1.13

Mencadangkan penginstalan hybrid Anda

  1. Petunjuk ini menggunakan variabel lingkungan APIGEE_HELM_CHARTS_HOME untuk direktori dalam sistem file tempat Anda menginstal diagram Helm. Jika perlu, ubah direktori ke direktori ini dan tentukan variabel dengan perintah berikut:

    Linux

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Mac OS

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Windows

    set APIGEE_HELM_CHARTS_HOME=%CD%
    echo %APIGEE_HELM_CHARTS_HOME%
  2. Buat salinan cadangan direktori 1.12 $APIGEE_HELM_CHARTS_HOME/ versi Anda. Anda dapat menggunakan proses pencadangan apa pun. Misalnya, Anda dapat membuat file tar dari seluruh direktori Anda dengan:
    tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.12-backup.tar.gz $APIGEE_HELM_CHARTS_HOME
  3. Cadangkan database Cassandra Anda dengan mengikuti petunjuk di Pencadangan dan pemulihan Cassandra.
  4. Jika Anda menggunakan file sertifikat layanan (.json) dalam penggantian untuk mengautentikasi akun layanan, pastikan file sertifikat akun layanan Anda berada di direktori diagram Helm yang benar. Diagram Helm tidak dapat membaca file di luar setiap direktori diagram.

    Langkah ini tidak diperlukan jika Anda menggunakan secret Kubernetes atau Workload Identity untuk mengautentikasi akun layanan.

    Tabel berikut menunjukkan tujuan untuk setiap file akun layanan, bergantung pada jenis penginstalan Anda:

    Prod

    Akun layanan Nama file default Direktori diagram Helm
    apigee-cassandra PROJECT_ID-apigee-cassandra.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    apigee-logger PROJECT_ID-apigee-logger.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-mart PROJECT_ID-apigee-mart.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-metrics PROJECT_ID-apigee-metrics.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-runtime PROJECT_ID-apigee-runtime.json $APIGEE_HELM_CHARTS_HOME/apigee-env
    apigee-synchronizer PROJECT_ID-apigee-synchronizer.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
    apigee-udca PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-watcher PROJECT_ID-apigee-watcher.json $APIGEE_HELM_CHARTS_HOME/apigee-org/

    Non-prod

    Buat salinan file akun layanan apigee-non-prod di setiap direktori berikut:

    Akun layanan Nama file default Direktori diagram Helm
    apigee-non-prod PROJECT_ID-apigee-non-prod.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    $APIGEE_HELM_CHARTS_HOME/apigee-org/
    $APIGEE_HELM_CHARTS_HOME/apigee-env/
  5. Pastikan file sertifikat dan kunci TLS Anda (.crt, .key, dan/atau .pem) berada di direktori $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.

Mengupgrade versi Kubernetes

Periksa versi platform Kubernetes Anda dan jika perlu, upgrade platform Kubernetes Anda ke versi yang didukung oleh hybrid 1.12 dan hybrid 1.13. Ikuti dokumentasi platform Anda jika Anda memerlukan bantuan.

Menginstal runtime hybrid 1.13.4

Mempersiapkan upgrade diagram Helm

  1. Tarik diagram Helm Apigee.

    Diagram hybrid Apigee dihosting di Google Artifact Registry:

    oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts

    Dengan menggunakan perintah pull, salin semua diagram Helm Apigee Hybrid ke penyimpanan lokal Anda dengan perintah berikut:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.13.4
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  2. Upgrade cert-manager jika diperlukan.

    Jika Anda perlu mengupgrade versi cert-manager, instal versi baru dengan perintah berikut:

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.5/cert-manager.yaml
    

    Lihat Platform dan versi yang didukung: cert-manager untuk mengetahui daftar versi yang didukung.

  3. Jika namespace Apigee Anda bukan apigee, edit file apigee-operator/etc/crds/default/kustomization.yaml dan ganti nilai namespace dengan namespace Apigee Anda.
    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    
    namespace: APIGEE_NAMESPACE
    

    Jika Anda menggunakan apigee sebagai namespace, Anda tidak perlu mengedit file.

  4. Instal CRD Apigee yang telah diupdate:
    1. Gunakan fitur uji coba kubectl dengan menjalankan perintah berikut:

      kubectl apply -k  apigee-operator/etc/crds/default/ \
        --server-side \
        --force-conflicts \
        --validate=false \
        --dry-run=server
      
    2. Setelah memvalidasi dengan perintah uji coba, jalankan perintah berikut:

      kubectl apply -k  apigee-operator/etc/crds/default/ \
        --server-side \
        --force-conflicts \
        --validate=false
      
    3. Validasi penginstalan dengan perintah kubectl get crds:
      kubectl get crds | grep apigee

      Output Anda akan terlihat seperti berikut:

      apigeedatastores.apigee.cloud.google.com                    2024-08-21T14:48:30Z
      apigeedeployments.apigee.cloud.google.com                   2024-08-21T14:48:30Z
      apigeeenvironments.apigee.cloud.google.com                  2024-08-21T14:48:31Z
      apigeeissues.apigee.cloud.google.com                        2024-08-21T14:48:31Z
      apigeeorganizations.apigee.cloud.google.com                 2024-08-21T14:48:32Z
      apigeeredis.apigee.cloud.google.com                         2024-08-21T14:48:33Z
      apigeerouteconfigs.apigee.cloud.google.com                  2024-08-21T14:48:33Z
      apigeeroutes.apigee.cloud.google.com                        2024-08-21T14:48:33Z
      apigeetelemetries.apigee.cloud.google.com                   2024-08-21T14:48:34Z
      cassandradatareplications.apigee.cloud.google.com           2024-08-21T14:48:35Z
      
  5. Migrasikan apigee-operator dari namespace apigee-system ke APIGEE_NAMESPACE.
    1. Anotasikan clusterIssuer dengan namespace baru
      kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='APIGEE_NAMESPACE'
      
    2. Jika Anda mengubah nama rilis untuk apigee-operator, beri anotasi clusterIssuer dengan nama rilis baru.
      kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='APIGEE_OPERATOR_RELEASE_NAME'
      
    3. Perbarui replika deployment Apigee Operator yang ada di namespace apigee-system menjadi 0 (nol) untuk menghindari rekonsiliasi dua pengontrol.
      kubectl scale deployment apigee-controller-manager -n apigee-system --replicas=0
      
    4. Hapus apigee-mutating-webhook-configuration dan apigee-validating-webhook-configuration.
      kubectl delete mutatingwebhookconfiguration apigee-mutating-webhook-configuration
      kubectl delete validatingwebhookconfiguration apigee-validating-webhook-configuration
      
  6. Periksa label pada node cluster. Secara default, Apigee menjadwalkan pod data pada node dengan label cloud.google.com/gke-nodepool=apigee-data dan pod runtime dijadwalkan pada node dengan label cloud.google.com/gke-nodepool=apigee-runtime. Anda dapat menyesuaikan label node pool di file overrides.yaml.

    Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi node pool khusus.

Menginstal diagram Helm Apigee hybrid

  1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
  2. Upgrade Apigee Operator/Controller:

    Uji coba:

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mengupgrade diagram:

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Verifikasi penginstalan Apigee Operator:

    helm ls -n APIGEE_NAMESPACE
    
    NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                   APP VERSION
    operator   apigee   3          2024-08-21 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.13.4   1.13.4
    

    Verifikasi bahwa instance sudah aktif dan berjalan dengan memeriksa ketersediaannya:

    kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager   1/1     1            1           7d20h
    
  3. Upgrade datastore Apigee:

    Uji coba:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mengupgrade diagram:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Verifikasi bahwa apigeedatastore sudah aktif dan berjalan dengan memeriksa statusnya:

    kubectl -n APIGEE_NAMESPACE get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
  4. Mengupgrade telemetri Apigee:

    Uji coba:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mengupgrade diagram:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Pastikan instance berjalan dengan memeriksa statusnya:

    kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee-telemetry   running   2d
  5. Mengupgrade Apigee Redis:

    Uji coba:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mengupgrade diagram:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Pastikan instance berjalan dengan memeriksa statusnya:

    kubectl -n APIGEE_NAMESPACE get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
  6. Upgrade pengelola ingress Apigee:

    Uji coba:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mengupgrade diagram:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Verifikasi bahwa instance sudah aktif dan berjalan dengan memeriksa ketersediaannya:

    kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-ingressgateway-manager   2/2     2            2           2d
  7. Upgrade organisasi Apigee:

    Uji coba:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Mengupgrade diagram:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    

    Pastikan org tersebut aktif dan berjalan dengan memeriksa status org yang bersangkutan:

    kubectl -n APIGEE_NAMESPACE get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          running   2d
  8. Upgrade lingkungan.

    Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME.

    Uji coba:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-env. Nama ini harus unik dari nama rilis Helm lainnya di penginstalan Anda. Biasanya ini sama dengan ENV_NAME. Namun, jika lingkungan Anda memiliki nama yang sama dengan grup lingkungan, Anda harus menggunakan nama rilis yang berbeda untuk lingkungan dan grup lingkungan, misalnya dev-env-release dan dev-envgroup-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Three big concepts class="external" di dokumentasi Helm.
    • ENV_NAME adalah nama lingkungan yang Anda upgrade.
    • OVERRIDES_FILE adalah file penggantian baru Anda untuk v.1.13.4

    Mengupgrade diagram:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    

    Verifikasi bahwa aplikasi sudah aktif dan berjalan dengan memeriksa status env masing-masing:

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d
  9. Upgrade grup lingkungan (virtualhosts).
    1. Anda harus mengupgrade satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan --set envgroup=ENV_GROUP_NAME. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE \
        --dry-run=server
      

      ENV_GROUP_RELEASE_NAME adalah nama yang Anda gunakan sebelumnya untuk menginstal diagram apigee-virtualhost. Biasanya ENV_GROUP_NAME.

      Mengupgrade diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE
      
    2. Periksa status ApigeeRoute (AR).

      Menginstal virtualhosts membuat ApigeeRouteConfig (ARC) yang secara internal membuat ApigeeRoute (AR) setelah watcher Apigee menarik detail terkait grup lingkungan dari bidang kontrol. Oleh karena itu, periksa apakah status AR yang sesuai sedang berjalan:

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2d
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                        STATE     AGE
      apigee-org1-dev-egroup-xxxxxx                running   2d
  10. Setelah Anda memverifikasi bahwa semua penginstalan berhasil diupgrade, hapus rilis apigee-operator yang lebih lama dari namespace apigee-system.
    1. Uninstal rilis operator lama:
      helm delete operator -n apigee-system
      
    2. Hapus namespace apigee-system:
      kubectl delete namespace apigee-system
      
  11. Upgrade operator lagi di namespace Apigee Anda untuk menginstal ulang resource cakupan cluster yang dihapus:
    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

Gunakan prosedur ini untuk memvalidasi perilaku kebijakan JavaCallout setelah mengupgrade dari 1.13.2 atau yang lebih lama ke 1.13.3 atau yang lebih baru.

  1. Periksa apakah file JAR Java meminta izin yang tidak diperlukan.

    Setelah kebijakan di-deploy, periksa log runtime untuk melihat apakah pesan log berikut ada: "Failed to load and initialize class ...". Jika Anda melihat pesan ini, hal ini menunjukkan bahwa JAR yang di-deploy meminta izin yang tidak diperlukan. Untuk mengatasi masalah ini, selidiki kode Java dan perbarui file JAR.

  2. Selidiki dan perbarui kode Java.

    Tinjau kode Java (termasuk dependensi) untuk mengidentifikasi penyebab operasi yang berpotensi tidak diizinkan. Jika ditemukan, ubah kode sumber sesuai kebutuhan.

  3. Uji kebijakan dengan pemeriksaan keamanan yang diaktifkan.

    Di lingkungan non-produksi, aktifkan tanda pemeriksaan keamanan dan deploy ulang kebijakan Anda dengan JAR yang telah diupdate. Untuk menetapkan tanda:

    • Di file apigee-env/values.yaml, tetapkan conf_security-secure.constructor.only ke true di bagian runtime:cwcAppend:. Contoh:
      # Apigee Runtime
      runtime:
        cwcAppend:
          conf_security-secure.constructor.only: true
    • Perbarui diagram apigee-env untuk lingkungan guna menerapkan perubahan. Contoh:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set env=ENV_NAME \
        -f OVERRIDES_FILE

        ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-env. Nama ini harus unik dari nama rilis Helm lainnya di penginstalan Anda. Biasanya ini sama dengan ENV_NAME. Namun, jika lingkungan Anda memiliki nama yang sama dengan grup lingkungan, Anda harus menggunakan nama rilis yang berbeda untuk lingkungan dan grup lingkungan, misalnya dev-env-release dan dev-envgroup-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Three big concepts class="external" di dokumentasi Helm.

    Jika pesan log "Failed to load and initialize class ..." masih ada, lanjutkan pengubahan dan pengujian JAR hingga pesan log tidak muncul lagi.

  4. Aktifkan pemeriksaan keamanan di lingkungan produksi.

    Setelah Anda menguji dan memverifikasi file JAR secara menyeluruh di lingkungan non-produksi, aktifkan pemeriksaan keamanan di lingkungan produksi dengan menyetel tanda conf_security-secure.constructor.only ke true dan memperbarui diagram apigee-env untuk lingkungan produksi guna menerapkan perubahan.

Mengembalikan ke versi sebelumnya

Untuk melakukan rollback ke versi sebelumnya, gunakan versi diagram yang lebih lama untuk melakukan rollback proses upgrade dalam urutan terbalik. Mulai dengan apigee-virtualhost dan kembali ke apigee-operator, lalu batalkan CRD.

Karena perubahan namespace untuk apigee-operator, Anda harus melakukan langkah-langkah tambahan untuk menghapus hook penerimaan Validasi dan Mutasi. Dengan begitu, saat Anda menginstal apigee-operator kembali di namespace apigee-system, keduanya akan dibuat ulang untuk mengarah ke endpoint Apigee Operator yang benar.

  1. Perbarui replika deployment Apigee Operator yang ada di Apigee menjadi 0 (nol) untuk menghindari dua pengontrol merekonsiliasi Custom Resources guna menghindari konflik saat melakukan rollback di namespace apigee-system.
    kubectl scale deployment apigee-controller-manager -n APIGEE_NAMESPACE --replicas=0
    
    kubectl delete mutatingwebhookconfiguration \
      apigee-mutating-webhook-configuration-APIGEE_NAMESPACE
    
    kubectl delete validatingwebhookconfiguration \
      apigee-validating-webhook-configuration-APIGEE_NAMESPACE
    
  2. Mengembalikan semua diagram dari apigee-virtualhost ke apigee-datastore. Perintah berikut mengasumsikan Anda menggunakan diagram dari versi sebelumnya (v1.12.x).

    Jalankan perintah berikut untuk setiap grup lingkungan:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f 1.12_OVERRIDES_FILE
    

    Jalankan perintah berikut untuk setiap lingkungan:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f 1.12_OVERRIDES_FILE
    

    Kembalikan diagram yang tersisa, kecuali apigee-operator.

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.12_OVERRIDES_FILE
    
    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.12_OVERRIDES_FILE
    
    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.12_OVERRIDES_FILE
    
    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.12_OVERRIDES_FILE
    
    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f 1.12_OVERRIDES_FILE
    
  3. Buat namespace apigee-system.
    kubectl create namespace apigee-system
    
  4. Patch anotasi resource kembali ke namespace apigee-system.
    kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-namespace='apigee-system'
    
  5. Jika Anda juga telah mengubah nama rilis, perbarui anotasi dengan nama rilis operator.
    kubectl annotate --overwrite clusterIssuer apigee-ca-issuer meta.helm.sh/release-name='operator'
    
  6. Instal apigee-operator kembali ke namespace apigee-system.
    helm upgrade operator apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f 1.12_OVERRIDES_FILE
    
  7. Kembalikan CRD dengan menginstal ulang CRD yang lebih lama.
    kubectl apply -k apigee-operator/etc/crds/default/ \
      --server-side \
      --force-conflicts \
      --validate=false
    
  8. Bersihkan rilis apigee-operator dari namespace APIGEE_NAMESPACE untuk menyelesaikan proses rollback.
    helm uninstall operator -n APIGEE_NAMESPACE
    
  9. Beberapa resource cakupan cluster, seperti clusterIssuer, akan dihapus saat operator di-uninstal. Instal ulang dengan perintah berikut:
    helm upgrade operator apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f 1.12_OVERRIDES_FILE