Langkah 11: Menginstal Apigee hybrid Menggunakan Helm

Menginstal komponen runtime Apigee hybrid

Pada langkah ini, Anda akan menggunakan Helm untuk menginstal komponen hybrid Apigee berikut:

  • Operator Apigee
  • Datastore Apigee
  • Telemetri Apigee
  • Apigee Redis
  • Pengelola ingress Apigee
  • Organisasi Apigee
  • Lingkungan Apigee Anda

Anda akan menginstal diagram untuk setiap lingkungan satu per satu. Urutan penginstalan komponen itu penting.

Catatan Prapenginstalan

  1. Jika Anda belum menginstal Helm v3.14.2+, ikuti petunjuk di bagian Menginstal Helm.
  2. Apigee hybrid menggunakan guardrail Helm untuk memverifikasi konfigurasi sebelum menginstal atau mengupgrade diagram. Anda mungkin melihat informasi khusus guardrail dalam output setiap perintah di bagian ini, misalnya:

    # Source: apigee-operator/templates/apigee-operators-guardrails.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: apigee-hybrid-helm-guardrail-operator
      namespace:  APIGEE_NAMESPACE
      annotations:
        helm.sh/hook: pre-install,pre-upgrade
        helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
      labels:
        app: apigee-hybrid-helm-guardrail
    

    Jika salah satu perintah helm upgrade gagal, Anda dapat menggunakan output guardrail untuk membantu mendiagnosis penyebabnya. Lihat Mendiagnosis masalah terkait guardrail.

  3. Sebelum menjalankan perintah upgrade/penginstalan Helm, gunakan fitur uji coba Helm dengan menambahkan --dry-run=server di akhir perintah. Lihat helm install --h untuk mencantumkan perintah, opsi, dan penggunaan yang didukung.

Langkah-langkah penginstalan

Pilih petunjuk penginstalan untuk jenis autentikasi akun layanan di penginstalan hybrid Anda:

Secret Kubernetes

  1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
  2. Instal Operator/Pengontrol Apigee:
    1. Uji coba:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Verifikasi penginstalan Operator Apigee:

      helm ls -n APIGEE_NAMESPACE
      
      NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
      operator   apigee   3          2025-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.9   1.15.9
      
    4. Pastikan cluster 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           34s
      
  3. Menginstal datastore Apigee:

    1. Uji coba:
      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan apigeedatastore aktif dan berjalan dengan memeriksa statusnya sebelum melanjutkan ke langkah berikutnya:

      kubectl -n APIGEE_NAMESPACE get apigeedatastore default
      
      NAME      STATE       AGE
      default   running    51s
      
  4. Instal telemetri Apigee:

    1. Uji coba:
      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
      
      NAME               STATE     AGE
      apigee-telemetry   running   55s
      
  5. Instal Apigee Redis:

    1. Uji coba:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeeredis default
      
      NAME      STATE     AGE
      default   running   79s
      
  6. Menginstal pengelola ingress Apigee:

    1. Uji coba:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster 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           16s
      
  7. Menginstal organisasi Apigee. Jika Anda telah menetapkan variabel lingkungan $ORG_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa status organisasi yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeorg
      
      NAME                      STATE     AGE
      my-project-123abcd        running   4m18s
      
  8. Instal lingkungan.

    Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME. Jika Anda telah menetapkan variabel lingkungan $ENV_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --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 dalam 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 Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
    3. Pastikan lingkungan tersebut aktif dan berjalan dengan memeriksa status lingkungan yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeenv
      
      NAME                       STATE     AGE   GATEWAYTYPE
      apigee-my-project-my-env   running   3m1s
      
  9. Instal grup lingkungan (virtualhosts).
    1. Anda harus menginstal satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan --set envgroup=ENV_GROUP. Jika Anda telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml Anda:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_GROUP_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-virtualhosts. Nama ini harus unik dari nama rilis Helm lainnya dalam penginstalan Anda. Biasanya, ini sama dengan ENV_GROUP. Namun, jika grup lingkungan Anda memiliki nama yang sama dengan lingkungan dalam penginstalan, Anda harus menggunakan nama rilis yang berbeda untuk grup lingkungan dan lingkungan, misalnya dev-envgroup-release dan dev-env-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    3. Periksa status ApigeeRoute (AR).

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

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2m
      
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                                        STATE     AGE
      apigee-ingressgateway-internal-chaining-my-project-123abcd   running   19m
      my-project-myenvgroup-000-321dcba                            running   2m30s
      

File JSON

  1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
  2. Instal Operator/Pengontrol Apigee:
    1. Uji coba:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Verifikasi penginstalan Operator Apigee:

      helm ls -n APIGEE_NAMESPACE
      
      NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
      operator   apigee   3          2025-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.9   1.15.9
      
    4. Pastikan cluster 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           34s
      
  3. Menginstal datastore Apigee:

    1. Uji coba:
      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan apigeedatastore aktif dan berjalan dengan memeriksa statusnya sebelum melanjutkan ke langkah berikutnya:

      kubectl -n APIGEE_NAMESPACE get apigeedatastore default
      
      NAME      STATE       AGE
      default   running    51s
      
  4. Instal telemetri Apigee:

    1. Uji coba:
      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
      
      NAME               STATE     AGE
      apigee-telemetry   running   55s
      
  5. Instal Apigee Redis:

    1. Uji coba:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeeredis default
      
      NAME      STATE     AGE
      default   running   79s
      
  6. Menginstal pengelola ingress Apigee:

    1. Uji coba:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster 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           16s
      
  7. Menginstal organisasi Apigee. Jika Anda telah menetapkan variabel lingkungan $ORG_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa status organisasi yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeorg
      
      NAME                      STATE     AGE
      my-project-123abcd        running   4m18s
      
  8. Instal lingkungan.

    Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME. Jika Anda telah menetapkan variabel lingkungan $ENV_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --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 dalam 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 Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
    3. Pastikan lingkungan tersebut aktif dan berjalan dengan memeriksa status lingkungan yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeenv
      
      NAME                       STATE     AGE   GATEWAYTYPE
      apigee-my-project-my-env   running   3m1s
      
  9. Instal grup lingkungan (virtualhosts).
    1. Anda harus menginstal satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan --set envgroup=ENV_GROUP. Jika Anda telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml Anda:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_GROUP_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-virtualhosts. Nama ini harus unik dari nama rilis Helm lainnya dalam penginstalan Anda. Biasanya, ini sama dengan ENV_GROUP. Namun, jika grup lingkungan Anda memiliki nama yang sama dengan lingkungan dalam penginstalan, Anda harus menggunakan nama rilis yang berbeda untuk grup lingkungan dan lingkungan, misalnya dev-envgroup-release dan dev-env-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    3. Periksa status ApigeeRoute (AR).

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

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2m
      
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                                        STATE     AGE
      apigee-ingressgateway-internal-chaining-my-project-123abcd   running   19m
      my-project-myenvgroup-000-321dcba                            running   2m30s
      

Vault

  1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
  2. Instal Operator/Pengontrol Apigee:
    1. Uji coba:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Verifikasi penginstalan Operator Apigee:

      helm ls -n APIGEE_NAMESPACE
      
      NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
      operator   apigee   3          2025-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.9   1.15.9
      
    4. Pastikan cluster 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           34s
      
  3. Menginstal datastore Apigee:

    1. Uji coba:
      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan apigeedatastore aktif dan berjalan dengan memeriksa statusnya sebelum melanjutkan ke langkah berikutnya:

      kubectl -n APIGEE_NAMESPACE get apigeedatastore default
      
      NAME      STATE       AGE
      default   running    51s
      
  4. Instal telemetri Apigee:

    1. Uji coba:
      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
      
      NAME               STATE     AGE
      apigee-telemetry   running   55s
      
  5. Instal Apigee Redis:

    1. Uji coba:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeeredis default
      
      NAME      STATE     AGE
      default   running   79s
      
  6. Menginstal pengelola ingress Apigee:

    1. Uji coba:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster 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           16s
      
  7. Menginstal organisasi Apigee. Jika Anda telah menetapkan variabel lingkungan $ORG_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa status organisasi yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeorg
      
      NAME                      STATE     AGE
      my-project-123abcd        running   4m18s
      
  8. Instal lingkungan.

    Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME. Jika Anda telah menetapkan variabel lingkungan $ENV_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --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 dalam 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 Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
    3. Pastikan lingkungan tersebut aktif dan berjalan dengan memeriksa status lingkungan yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeenv
      
      NAME                       STATE     AGE   GATEWAYTYPE
      apigee-my-project-my-env   running   3m1s
      
  9. Instal grup lingkungan (virtualhosts).
    1. Anda harus menginstal satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan --set envgroup=ENV_GROUP. Jika Anda telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml Anda:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_GROUP_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-virtualhosts. Nama ini harus unik dari nama rilis Helm lainnya dalam penginstalan Anda. Biasanya, ini sama dengan ENV_GROUP. Namun, jika grup lingkungan Anda memiliki nama yang sama dengan lingkungan dalam penginstalan, Anda harus menggunakan nama rilis yang berbeda untuk grup lingkungan dan lingkungan, misalnya dev-envgroup-release dan dev-env-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    3. Periksa status ApigeeRoute (AR).

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

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2m
      
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                                        STATE     AGE
      apigee-ingressgateway-internal-chaining-my-project-123abcd   running   19m
      my-project-myenvgroup-000-321dcba                            running   2m30s
      

WIF untuk GKE

  1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
  2. Instal Operator/Pengontrol Apigee:
    1. Uji coba:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Verifikasi penginstalan Operator Apigee:

      helm ls -n APIGEE_NAMESPACE
      
      NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
      operator   apigee   3          2025-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.9   1.15.9
      
    4. Pastikan cluster 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           34s
      
  3. Menginstal datastore Apigee:

    1. Uji coba:
      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Siapkan binding akun layanan untuk Cassandra untuk Workload Identity Federation for GKE:

      Output dari perintah helm upgrade seharusnya berisi perintah di bagian NOTES. Ikuti perintah tersebut untuk menyiapkan binding akun layanan. Seharusnya ada dua perintah dalam bentuk:

      Produksi

      gcloud iam service-accounts add-iam-policy-binding CASSANDRA_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-cassandra-default]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-cassandra-default]" \
        --project PROJECT_ID
      

      Dan:

      Produksi

      kubectl annotate serviceaccount apigee-cassandra-default \
        iam.gke.io/gcp-service-account=CASSANDRA_SERVICE_ACCOUNT_EMAIL \
        --namespace APIGEE_NAMESPACE
      

      Non-prod

      kubectl annotate serviceaccount apigee-cassandra-default \
        iam.gke.io/gcp-service-account=NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --namespace APIGEE_NAMESPACE
      

      Contoh:

      Produksi

      NOTES:
      For Cassandra backup GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
        gcloud iam service-accounts add-iam-policy-binding apigee-cassandra@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \
              --project my-project
      
        kubectl annotate serviceaccount apigee-cassandra-default \
              iam.gke.io/gcp-service-account=apigee-cassandra@my-project.iam.gserviceaccount.com \
              --namespace apigee
      

      Non-prod

      NOTES:
      For Cassandra backup GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \
              --project my-project
      
        kubectl annotate serviceaccount apigee-cassandra-default \
              iam.gke.io/gcp-service-account=apigee-non-prod@my-project.iam.gserviceaccount.com \
              --namespace apigee
      

      Opsional: Jika Anda tidak ingin menyiapkan pencadangan Cassandra saat ini, edit file penggantian untuk menghapus atau menjadikan stanza cassandra.backup sebagai komentar sebelum menjalankan perintah helm upgrade tanpa flag --dry-run. Lihat Pencadangan dan pemulihan Cassandra untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi pencadangan Cassandra.

    3. Instal diagram:

      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    4. Pastikan apigeedatastore aktif dan berjalan dengan memeriksa statusnya sebelum melanjutkan ke langkah berikutnya:

      kubectl -n APIGEE_NAMESPACE get apigeedatastore default
      
      NAME      STATE       AGE
      default   running    51s
      
  4. Instal telemetri Apigee:

    1. Uji coba:
      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Siapkan binding akun layanan untuk Logger dan Metrics untuk Workload Identity Federation for GKE:

      Output dari perintah helm upgrade seharusnya berisi perintah di bagian NOTES. Ikuti perintah tersebut untuk menyiapkan binding akun layanan. Seharusnya ada dua perintah dalam bentuk:

      Logger KSA: apigee-logger-apigee-telemetry

      gcloud iam service-accounts add-iam-policy-binding LOGGER_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \
        --project PROJECT_ID
      

      KSA Metrik: apigee-metrics-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding METRICS_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-metrics-sa]" \
        --project PROJECT_ID

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-metrics-sa]" \
        --project PROJECT_ID

      Contoh:

      Produksi

      NOTES:
      For GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
        Logger KSA: apigee-logger-apigee-telemetry
        gcloud iam service-accounts add-iam-policy-binding apigee-logger@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \
              --project my-project
      
        Metrics KSA: apigee-metrics-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-metrics@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-metrics-sa]" \
              --project my-project
      

      Non-prod

      NOTES:
      For GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
        Logger KSA: apigee-logger-apigee-telemetry
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \
              --project my-project
      
        Metrics KSA: apigee-metrics-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-metrics-sa]" \
              --project my-project
      
    3. Instal diagram:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    4. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
      
      NAME               STATE     AGE
      apigee-telemetry   running   55s
      
  5. Instal Apigee Redis:

    1. Uji coba:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeeredis default
      
      NAME      STATE     AGE
      default   running   79s
      
  6. Menginstal pengelola ingress Apigee:

    1. Uji coba:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster 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           16s
      
  7. Menginstal organisasi Apigee. Jika Anda telah menetapkan variabel lingkungan $ORG_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Siapkan binding akun layanan untuk komponen cakupan organisasi untuk Workload Identity Federation for GKE, MART, Apigee Connect, UDCA, dan Watcher.

      Output dari perintah helm upgrade seharusnya berisi perintah di bagian NOTES. Ikuti perintah tersebut untuk menyiapkan binding akun layanan. Seharusnya ada empat perintah.

      MART KSA: apigee-mart-PROJECT_ID-ORG_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding MART_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mart-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mart-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      KSA Agen Connect: apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding MART_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      KSA Penjadwal Tugas Mint: (Jika Anda menggunakan Monetisasi untuk Apigee hybrid) apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding MINT_TASK_SCHEDULER_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      UDCA KSA: apigee-udca-PROJECT_ID-ORG_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding UDCA_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      KSA Pengamat: apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding WATCHER_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Contoh:

      Produksi

      NOTES:
      For Apigee Organization GKE Workload Identity, my-project, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
      
      
        MART KSA: apigee-mart-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-mart@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mart-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        Connect Agent KSA: apigee-connect-agent-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-mart@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-connect-agent-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        Mint task scheduler KSA: apigee-mint-task-scheduler-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mint-task-scheduler-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        UDCA KSA: apigee-udca-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-udca@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        Watcher KSA: apigee-watcher-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-watcher@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-watcher-my-project-1a2b3c4-sa]" \
              --project my-project
      

      Non-prod

      NOTES:
      For Apigee Organization GKE Workload Identity, my-project, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
      
        MART KSA: apigee-mart-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mart-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        Connect Agent KSA: apigee-connect-agent-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-connect-agent-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        UDCA KSA: apigee-udca-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-1a2b3c4-sa]" \
              --project my-project
      
      
        Watcher KSA: apigee-watcher-my-project-1a2b3c4-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-watcher-my-project-1a2b3c4-sa]" \
              --project my-project
      
    3. Instal diagram:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    4. Pastikan cluster aktif dan berjalan dengan memeriksa status organisasi yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeorg
      
      NAME                      STATE     AGE
      my-project-123abcd        running   4m18s
      
  8. Instal lingkungan.

    Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME. Jika Anda telah menetapkan variabel lingkungan $ENV_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --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 dalam 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 Tiga konsep besar dalam dokumentasi Helm.

    2. Siapkan binding akun layanan untuk komponen cakupan lingkungan untuk Workload Identity Federation for GKE, Runtime, Synchronizer, dan UDCA.

      Output dari perintah helm upgrade seharusnya berisi perintah di bagian NOTES. Ikuti perintah tersebut untuk menyiapkan binding akun layanan. Seharusnya ada empat perintah.

      KSA Runtime: apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding RUNTIME_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \
        --project PROJECT_ID
      

      KSA Sinkronisasi: apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding SYNCHRONIZER_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \
        --project PROJECT_ID
      

      UDCA KSA: apigee-udca-PROJECT_ID-ORG_HASH_ID-ENV_NAME-ENV_HASH_ID-sa

      Produksi

      gcloud iam service-accounts add-iam-policy-binding UDCA_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Non-prod

      gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \
        --project PROJECT_ID
      

      Contoh:

      NOTES:
      For Apigee Environment GKE Workload Identity, my-env, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA).
      
      
        Runtime KSA: apigee-runtime-my-project-my-env-b2c3d4e-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-runtime@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-runtime-my-project-my-env-b2c3d4e-sa]" \
              --project my-project
      
      
        Synchronizer KSA: apigee-synchronizer-my-project-my-env-b2c3d4e-sa
        gcloud iam service-accounts add-iam-policy-binding apigee-synchronizer@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-synchronizer-my-project-my-env-b2c3d4e-sa]" \
              --project my-project
      
      
        UDCA KSA: apigee-udca-my-project-my-env-b2c3d4e-sa:
        gcloud iam service-accounts add-iam-policy-binding apigee-udca@my-project.iam.gserviceaccount.com \
              --role roles/iam.workloadIdentityUser \
              --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-my-env-b2c3d4e-sa]" \
              --project my-project
      
    3. Instal diagram:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
    4. Pastikan lingkungan tersebut aktif dan berjalan dengan memeriksa status lingkungan yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeenv
      
      NAME                       STATE     AGE   GATEWAYTYPE
      apigee-my-project-my-env   running   3m1s
      
  9. Instal grup lingkungan (virtualhosts).
    1. Anda harus menginstal satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan --set envgroup=ENV_GROUP. Jika Anda telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml Anda:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_GROUP_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-virtualhosts. Nama ini harus unik dari nama rilis Helm lainnya dalam penginstalan Anda. Biasanya, ini sama dengan ENV_GROUP. Namun, jika grup lingkungan Anda memiliki nama yang sama dengan lingkungan dalam penginstalan, Anda harus menggunakan nama rilis yang berbeda untuk grup lingkungan dan lingkungan, misalnya dev-envgroup-release dan dev-env-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    3. Periksa status ApigeeRoute (AR).

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

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2m
      
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                                        STATE     AGE
      apigee-ingressgateway-internal-chaining-my-project-123abcd   running   19m
      my-project-myenvgroup-000-321dcba                            running   2m30s
      
  10. (Opsional) Anda dapat melihat status akun layanan Kubernetes di halaman Kubernetes: Workloads Overview di Google Cloud console.

    Buka Workloads

WIF di platform lain

  1. Jika belum, buka direktori APIGEE_HELM_CHARTS_HOME Anda. Jalankan perintah berikut dari direktori tersebut.
  2. Instal Operator/Pengontrol Apigee:
    1. Uji coba:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:
      helm upgrade operator apigee-operator/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Verifikasi penginstalan Operator Apigee:

      helm ls -n APIGEE_NAMESPACE
      
      NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
      operator   apigee   3          2025-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.9   1.15.9
      
    4. Pastikan cluster 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           34s
      
  3. Menginstal datastore Apigee:

    1. Uji coba:
      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade datastore apigee-datastore/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Jika Anda telah mengaktifkan pencadangan Cassandra atau pemulihan Cassandra, beri akun layanan Kubernetes Cassandra akses untuk meniru identitas akun layanan IAM apigee-cassandra terkait.
      1. Cantumkan alamat email akun layanan IAM untuk Cassandra:

        Produksi

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-cassandra"

        Non-prod

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"

        Output-nya akan terlihat seperti berikut:

        Produksi

        apigee-cassandra      apigee-cassandra@my-project.iam.gserviceaccount.com      False
                          

        Non-prod

        apigee-non-prod       apigee-non-prod@my-project.iam.gserviceaccount.com      False
                          
      2. Cantumkan akun layanan Kubernetes Cassandra:
        kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-cassandra"

        Output-nya akan terlihat seperti berikut:

        apigee-cassandra-backup-sa                       0   7m37s
        apigee-cassandra-default                         0   7m12s
        apigee-cassandra-guardrails-sa                   0   6m43s
        apigee-cassandra-restore-sa                      0   7m37s
        apigee-cassandra-schema-setup-my-project-1a2b2c4 0   7m30s
        apigee-cassandra-schema-val-my-project-1a2b2c4   0   7m29s
        apigee-cassandra-user-setup-my-project-1a2b2c4   0   7m22s
                      
      3. Jika Anda telah membuat akun layanan Kubernetes apigee-cassandra-backup-sa atau apigee-cassandra-restore-sa, beri masing-masing akun layanan tersebut akses untuk meniru akun layanan IAM apigee-cassandra dengan perintah berikut:

        Produksi

        Template

        gcloud iam service-accounts add-iam-policy-binding \
          CASSANDRA_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-cassandra@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-cassandra-backup-sa" \
            --role=roles/iam.workloadIdentityUser

        Non-prod

        Template

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-cassandra-backup-sa" \
            --role=roles/iam.workloadIdentityUser

        Dengan:

        • CASSANDRA_IAM_SA_EMAIL: alamat email akun layanan IAM Cassandra.
        • PROJECT_NUMBER: nomor project dari project tempat Anda membuat workload identity pool.
        • POOL_ID: ID workload identity pool.
        • MAPPED_SUBJECT: ServiceAccount Kubernetes dari klaim di token ID Anda. Di sebagian besar penginstalan hybrid, ini akan memiliki format: system:serviceaccount:APIGEE_NAMESPACE:K8S_SA_NAME.
          • Untuk apigee-cassandra-backup-sa, ini akan mirip dengan system:serviceaccount:apigee:apigee-cassandra-backup-sa.
          • Untuk apigee-cassandra-restore-sa, ini akan mirip dengan system:serviceaccount:apigee:apigee-cassandra-restore-sa.
    4. Pastikan apigeedatastore aktif dan berjalan dengan memeriksa statusnya sebelum melanjutkan ke langkah berikutnya:

      kubectl -n APIGEE_NAMESPACE get apigeedatastore default
      
      NAME      STATE       AGE
      default   running    51s
      
  4. Instal telemetri Apigee:

    1. Uji coba:
      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade telemetry apigee-telemetry/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
      
      NAME               STATE     AGE
      apigee-telemetry   running   55s
      
    4. Beri akun layanan Kubernetes telemetri akses untuk meniru identitas akun layanan IAM apigee-metrics terkait.
      1. Cantumkan alamat email akun layanan IAM untuk metrik:

        Produksi

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-metrics"

        Output-nya akan terlihat seperti berikut:

        apigee-metrics   apigee-metrics@my-project.iam.gserviceaccount.com   False

        Non-prod

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"

        Output-nya akan terlihat seperti berikut:

        apigee-non-prod   apigee-non-prod@my-project.iam.gserviceaccount.com   False
      2. Cantumkan akun layanan Kubernetes telemetri:
        kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "telemetry"

        Output-nya akan terlihat seperti berikut:

        apigee-metrics-apigee-telemetry                    0   42m
        apigee-open-telemetry-collector-apigee-telemetry   0   37m
      3. Beri setiap akun layanan Kubernetes telemetri akses untuk meniru identitas akun layanan IAM apigee-metrics dengan perintah berikut:

        Produksi

        KSA Metrik Apigee: apigee-metrics-apigee-telemetry ke akun layanan Google IAM apigee-metrics

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          METRICS_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-metrics@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-metrics-apigee-telemetry" \
            --role=roles/iam.workloadIdentityUser

        KSA Kolektor OpenTelemetry Apigee: apigee-open-telemetry-collector-apigee-telemetry ke akun layanan IAM Google apigee-metrics

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          METRICS_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-metrics@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-open-telemetry-collector-apigee-telemetry" \
            --role=roles/iam.workloadIdentityUser

        Non-prod

        KSA Metrik Apigee: apigee-metrics-apigee-telemetry ke akun layanan Google IAM apigee-non-prod

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-metrics-apigee-telemetry" \
            --role=roles/iam.workloadIdentityUser

        KSA Kolektor OpenTelemetry Apigee: apigee-open-telemetry-collector-apigee-telemetry ke akun layanan IAM Google apigee-non-prod

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-open-telemetry-collector-apigee-telemetry" \
            --role=roles/iam.workloadIdentityUser
  5. Instal Apigee Redis:

    1. Uji coba:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade redis apigee-redis/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa statusnya:

      kubectl -n APIGEE_NAMESPACE get apigeeredis default
      
      NAME      STATE     AGE
      default   running   79s
      
  6. Menginstal pengelola ingress Apigee:

    1. Uji coba:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster 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           16s
      
  7. Menginstal organisasi Apigee. Jika Anda telah menetapkan variabel lingkungan $ORG_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      
    2. Instal diagram:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Pastikan cluster aktif dan berjalan dengan memeriksa status organisasi yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeorg
      
      NAME                      STATE     AGE
      my-project-123abcd        running   4m18s
      
    4. Memberi akun layanan Kubernetes cakupan organisasi akses untuk meniru identitas akun layanan IAM terkait.
      1. Cantumkan alamat email akun layanan IAM yang digunakan oleh komponen apigee-mart, apigee-udca, dan apigee-watcher:

        Produksi

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mart\|apigee-udca\|apigee-watcher"

        Output-nya akan terlihat seperti berikut:

        apigee-mart      apigee-mart@my-project.iam.gserviceaccount.com      False
        apigee-udca      apigee-udca@my-project.iam.gserviceaccount.com      False
        apigee-watcher   apigee-watcher@my-project.iam.gserviceaccount.com   False
        

        Jika Anda menggunakan Monetisasi untuk Apigee hybrid, dapatkan juga alamat email akun layanan apigee-mint-task-scheduler.

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mint-task-scheduler"

        Output-nya akan terlihat seperti berikut:

        apigee-mint-task-scheduler   apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com   False
        

        Non-prod

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"

        Output-nya akan terlihat seperti berikut:

        apigee-non-prod     apigee-non-prod@my-project.iam.gserviceaccount.com         False
                          
      2. Cantumkan akun layanan Kubernetes yang tercakup dalam organisasi:
        kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-connect-agent\|apigee-mart\|apigee-udca\|apigee-watcher"

        Output-nya akan terlihat seperti berikut:

        apigee-connect-agent-my-project-123abcd         0   1h4m
        apigee-mart-my-project-123abcd                  0   1h4m
        apigee-mint-task-scheduler-my-project-123abcd   0   1h3m
        apigee-udca-my-project-123abcd                  0   1h2m
        apigee-watcher-my-project-123abcd               0   1h1m
                      
      3. Gunakan perintah berikut untuk memberikan akses kepada akun layanan Kubernetes cakupan organisasi untuk meniru akun layanan IAM terkait sebagai berikut:

        Produksi

        KSA agen Connect: Akun layanan Kubernetes apigee-connect-agent-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-mart.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          APIGEE_MART_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-mart@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-connect-agent-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        KSA MART: Akun layanan Kubernetes apigee-mart-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-mart. MART dan agen Connect menggunakan akun layanan IAM yang sama.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          APIGEE_MART_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-mart@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mart-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        KSA penjadwal tugas Mint: (jika menggunakan Monetisasi untuk Apigee hybrid)

        Akun layanan Kubernetes apigee-mint-task-scheduler-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-mint-task-scheduler.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          APIGEE_MINT_TASK_SCHEDULER_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mint-task-scheduler-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        KSA UDCA cakupan organisasi: Akun layanan Kubernetes apigee-udca-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-udca.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          APIGEE_UDCA_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-udca-task-scheduler@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        Watcher KSA: Akun layanan Kubernetes apigee-watcher-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-watcher.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          APIGEE_WATCHER_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-watcher@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-watcher-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        Non-prod

        KSA agen Connect: Akun layanan Kubernetes apigee-connect-agent-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-non-prod.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-connect-agent-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        KSA MART: Akun layanan Kubernetes apigee-mart-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-non-prod.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mart-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        KSA penjadwal tugas Mint: (jika menggunakan Monetisasi untuk Apigee hybrid)

        Akun layanan Kubernetes apigee-mint-task-scheduler-ORG_NAME-UUIORG_HASH_IDD ke akun layanan IAM apigee-non-prod.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mint-task-scheduler-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        KSA UDCA cakupan organisasi: Akun layanan Kubernetes apigee-udca-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-non-prod.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser

        Watcher KSA: Akun layanan Kubernetes apigee-watcher-ORG_NAME-ORG_HASH_ID ke akun layanan IAM apigee-non-prod.

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-watcher-my-org-123abcd" \
            --role=roles/iam.workloadIdentityUser
  8. Instal lingkungan.

    Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME. Jika Anda telah menetapkan variabel lingkungan $ENV_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

    1. Uji coba:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --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 dalam 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 Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
    3. Pastikan lingkungan tersebut aktif dan berjalan dengan memeriksa status lingkungan yang bersangkutan:

      kubectl -n APIGEE_NAMESPACE get apigeeenv
      
      NAME                       STATE     AGE   GATEWAYTYPE
      apigee-my-project-my-env   running   3m1s
      
    4. Beri akun layanan Kubernetes cakupan lingkungan akses untuk meniru identitas akun layanan IAM terkait.
      1. Cantumkan alamat email akun layanan IAM yang digunakan oleh komponen apigee-runtime, apigee-synchronizer, dan apigee-udca:

        Produksi

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-runtime\|apigee-synchronizer\|apigee-udca"

        Non-prod

        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
        gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mart\|apigee-udca\|apigee-watcher"

        Output-nya akan terlihat seperti berikut:

        Produksi

        apigee-runtime         apigee-runtime@my-project.iam.gserviceaccount.com         False
        apigee-synchronizer    apigee-synchronizer@my-project.iam.gserviceaccount.com      False
        apigee-udca            apigee-udca@my-project.iam.gserviceaccount.com         False
                          

        Non-prod

        apigee-non-prod     apigee-non-prod@my-project.iam.gserviceaccount.com         False
                          
      2. Cantumkan akun layanan Kubernetes yang tercakup dalam lingkungan:
        kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-runtime\|apigee-synchronizer\|apigee-udca"

        Output-nya akan terlihat seperti berikut:

        apigee-runtime-my-project--my-env-cdef123          0   19m
        apigee-synchronizer-my-project-my-env-cdef123      0   17m
        apigee-udca-my-project-123abcd                     0   1h29m
        apigee-udca-my-project-my-env-cdef123              0   22m
                      
      3. Gunakan perintah berikut untuk memberikan akses ke akun layanan Kubernetes cakupan lingkungan untuk meniru akun layanan IAM terkait sebagai berikut:

        Produksi

        KSA Runtime: apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa KSA ke apigee-runtime SA IAM Google

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          RUNTIME_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-runtime@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-runtime-my-project-my-env-cdef123" \
            --role=roles/iam.workloadIdentityUser

        KSA Synchronizer: apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa KSA ke apigee-synchronizer SA IAM Google

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          SYNCHRONIZER_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-synchronizer@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-synchronizer-my-project-my-env-cdef123" \
            --role=roles/iam.workloadIdentityUser

        UDCA KSA: apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa KSA ke apigee-udca Google IAM SA

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          UDCA_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-udca@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-project-my-env-cdef123" \
            --role=roles/iam.workloadIdentityUser

        Non-prod

        KSA Runtime: apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa KSA ke apigee-non-prod SA IAM Google

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-runtime-my-project-my-env-cdef123" \
            --role=roles/iam.workloadIdentityUser

        Non-prod

        KSA Synchronizer: apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa KSA ke apigee-non-prod SA IAM Google

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-synchronizer-my-project-my-env-cdef123" \
            --role=roles/iam.workloadIdentityUser

        Non-prod

        UDCA KSA: apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa KSA ke apigee-non-prod Google IAM SA

        Kode

        gcloud iam service-accounts add-iam-policy-binding \
          NON_PROD_IAM_SA_EMAIL \
            --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \
            --role=roles/iam.workloadIdentityUser

        Contoh

        gcloud iam service-accounts add-iam-policy-binding \
          apigee-non-prod@my-project.iam.gserviceaccount.com \
            --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-project-my-env-cdef123" \
            --role=roles/iam.workloadIdentityUser
  9. Instal grup lingkungan (virtualhosts).
    1. Anda harus menginstal satu grup lingkungan (virtualhost) dalam satu waktu. Tentukan grup lingkungan dengan --set envgroup=ENV_GROUP. Jika Anda telah menetapkan variabel lingkungan $ENV_GROUP di shell, Anda dapat menggunakannya dalam perintah berikut. Ulangi perintah berikut untuk setiap grup lingkungan yang disebutkan dalam file overrides.yaml Anda:

      Uji coba:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_GROUP_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-virtualhosts. Nama ini harus unik dari nama rilis Helm lainnya dalam penginstalan Anda. Biasanya, ini sama dengan ENV_GROUP. Namun, jika grup lingkungan Anda memiliki nama yang sama dengan lingkungan dalam penginstalan, Anda harus menggunakan nama rilis yang berbeda untuk grup lingkungan dan lingkungan, misalnya dev-envgroup-release dan dev-env-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep besar dalam dokumentasi Helm.

    2. Instal diagram:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    3. Periksa status ApigeeRoute (AR).

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

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2m
      
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                                        STATE     AGE
      apigee-ingressgateway-internal-chaining-my-project-123abcd   running   19m
      my-project-myenvgroup-000-321dcba                            running   2m30s
      

Langkah berikutnya

Pada langkah berikutnya, Anda akan mengonfigurasi gateway ingress Apigee dan men-deploy proxy untuk menguji penginstalan.

(BERIKUTNYA) Langkah 1: Ekspos ingress Apigee 2