Membuat dan menautkan akun penagihan

Lingkungan air-gapped Google Distributed Cloud (GDC) memerlukan akun penagihan untuk melacak biaya project dan organisasi. Jika Anda tidak menautkan akun penagihan ke organisasi atau project, Anda akan kehilangan data biaya yang terkait dengan resource.

Untuk menagih penggunaan layanan kepada pelanggan, semua akun penagihan dalam organisasi menggunakan satu lembar harga.

Sebelum memulai

Minta Admin IAM Organisasi Anda untuk memberi Anda peran wajib berikut. Peran ini terikat ke namespace project untuk penagihan tingkat project, atau namespace platform untuk penagihan tingkat organisasi:

  • Admin Akun Penagihan Organisasi Global: membuat, mengelola, dan mengikat resource BillingAccount. Minta admin IAM Organisasi Anda untuk memberi Anda peran organization-billing-account-admin.

  • Pengguna Akun Penagihan Organisasi Global: membaca, mencantumkan, dan mengikat resource BillingAccount. Minta admin IAM Organisasi Anda untuk memberi Anda peran organization-billing-account-user.

  • Pengelola Akun Penagihan Organisasi Global: membaca, mencantumkan, membuat, dan memperbarui resource BillingAccountBinding. Minta admin IAM Organisasi Anda untuk memberi Anda peran organization-billing-manager.

Dapatkan file kubeconfig

Untuk menjalankan perintah terhadap server Global API, pastikan Anda memiliki resource berikut:

  1. Login dan buat file kubeconfig untuk server Global API jika Anda belum memilikinya.

  2. Gunakan jalur ke file kubeconfig server Global API untuk menggantikan GLOBAL_API_SERVER_KUBECONFIG dalam petunjuk ini.

Buat akun penagihan baru

Akun penagihan diidentifikasi secara unik oleh name dan namespace. Untuk membuat akun penagihan, gunakan resource kustom untuk membuat name dan namespace:

  1. Buat file YAML, lalu tambahkan resource kustom BillingAccount dan konten berikut:

    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccount
    metadata:
      namespace: platform
      name: BIL_ACCOUNT_NAME
    spec:
      displayName: BIL_DISPLAY_NAME
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: "012345-6789AB-CDEF01"
    

    Ganti variabel berikut:

    • BIL_ACCOUNT_NAME: nama akun penagihan. Contoh, test-billing-account.
    • BIL_DISPLAY_NAME: nama tampilan akun penagihan. Contoh, "Test Billing Account".
  2. Verifikasi jenis konfigurasi pembayaran Anda. Akun penagihan Distributed Cloud harus memiliki salah satu konfigurasi pembayaran berikut:

    • cloudBillingConfig: konfigurasi pembayaran default. Konfigurasi ini menyimpan ID akun Penagihan Cloud.

    • customConfig: konfigurasi kustom bagi partner untuk menyimpan konfigurasi pembayaran mereka guna menagih organisasi. customConfig mendukung kamus string key-value, dengan kunci wajib payment-config-type.

    Contoh berikut menunjukkan cuplikan file BillingAccount YAML untuk berbagai konfigurasi pembayaran:

    cloudBillingConfig

    spec:
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: CLOUD_BILLING_ACCOUNT_ID
    

    Ganti CLOUD_BILLING_ACCOUNT_ID dengan ID akun penagihanGoogle Cloud Anda.

    customConfig

    spec:
     paymentSystemConfig:
       customConfig:
          "payment-config-type": PAYMENT_CONFIG_TYPE
    

    Ganti PAYMENT_CONFIG_TYPE dengan jenis konfigurasi pembayaran yang Anda pilih untuk konfigurasi penagihan kustom.

    Jika Anda tidak memiliki informasi untuk konfigurasi customConfig organisasi Anda, masukkan detail berikut:

    spec:
     paymentSystemConfig:
       customConfig:
          "payment-config-type": "N/A"
    

    File YAML berikut menampilkan resource BillingAccount lengkap dengan konfigurasi cloudBillingConfig:

    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccount
    metadata:
      namespace: platform
      name: test-billing-account
    spec:
      displayName: "Test Billing Account"
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: "012345-6789AB-CDEF01"
    
  3. Simpan file YAML. Jalankan CLI kubectl untuk menerapkan resource di server Global API:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
    

    Ganti GLOBAL_API_SERVER_KUBECONFIG dengan file kubeconfig server Global API.

Bagian ini memberikan serangkaian langkah untuk menautkan organisasi atau project ke BillingAccount.

Untuk menautkan project ke BillingAccount, lakukan hal berikut:

  1. Tambahkan konten berikut ke file: billingaccountbinding.yaml:

    • Di bagian billingAccountRef, isi kolom name dengan konten dari kolom name di BillingAccount yang ingin Anda tautkan.
    • Di bagian metadata, isi kolom namespace dengan konten dari kolom yang identik di resource BillingAccount.

    Dalam contoh ini, namespace project adalah PROJECT_NAME:

    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: PROJECT_NAME
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    

    Ganti PROJECT_NAME dengan nama project yang terikat ke akun penagihan.

  2. Jalankan perintah kubectl berikut untuk menerapkan file billingaccountbinding.yaml:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    
  3. Periksa status BillingAccountBinding dan pastikan tidak ada error:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    

    Ganti PROJECT_NAME dengan nama project yang terikat ke akun penagihan.

Untuk menautkan organisasi ke BillingAccount, lakukan langkah-langkah berikut:

  1. Tambahkan konten berikut ke file YAML billingaccountbinding.yaml:

    • Di bagian billingAccountRef, isi kolom name dengan konten dari kolom name di BillingAccount yang ingin Anda tautkan.
    • Di bagian metadata, isi kolom namespace dengan konten dari kolom yang identik di resource BillingAccount. Dalam contoh ini, namespace organisasi adalah platform:
    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: platform
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    
  2. Jalankan perintah kubectl berikut untuk menerapkan file billingaccountbinding.yaml:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    
  3. Periksa status BillingAccountBinding dan pastikan tidak ada error:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform
    

Mencantumkan pengikatan akun penagihan

Melihat daftar semua resource BillingAccountBinding yang di-deploy dan statusnya saat ini di semua namespace dalam organisasi:

  kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get billingaccountbinding -A -o 'custom-columns=NAME:metadata.name,NAMESPACE:metadata.namespace,BillingAccountName:spec.billingAccountRef.name,STATUS:status.conditions[0].status'

Perintah ini menampilkan NAME, NAMESPACE, BillingAccountName, dan STATUS dari setiap BillingAccountBinding. Kolom STATUS menunjukkan apakah pengikatan aktif atau apakah ada error.

Hierarki dan perilaku akun penagihan

Saat menautkan akun penagihan ke organisasi dan project, hierarki dan perilaku berikut berlaku:

  • Pengaitan tingkat project lebih diprioritaskan: Jika project tertentu, seperti project-A, ditautkan secara eksplisit ke BillingAccount (seperti billing-account-1), maka semua biaya untuk project-A akan ditagih secara eksklusif ke billing-account-1. Asosiasi tingkat project ini tetap valid terlepas dari setelan akun penagihan tingkat organisasi.

  • Pengaitan tingkat organisasi untuk project yang tidak ditautkan: Jika organisasi Anda ditautkan ke BillingAccount (seperti billing-account-0), semua project dalam organisasi tersebut yang tidak memiliki BillingAccountBinding eksplisitnya sendiri akan otomatis dikaitkan dengan dan ditagih ke billing-account-0. Biasanya, pengaitan ini akan berlaku setelah sekitar 15 menit.

  • Mengubah akun penagihan organisasi: Jika akun penagihan yang ditautkan ke organisasi berubah (seperti dari billing-account-0 menjadi billing-account-new), project yang sebelumnya mewarisi billing-account-0 tidak akan otomatis beralih ke billing-account-new. Project ini tetap terikat ke billing-account-0, dan akun penagihannya harus diperbarui secara manual jika Anda ingin project tersebut menggunakan billing-account-new.

Mengubah akun penagihan tertaut

Di Distributed Cloud, Anda tidak dapat menghapus akun penagihan. Jika Anda perlu mengubah konfigurasi penagihan, Anda harus mengubah akun penagihan yang ditautkan ke organisasi atau project dengan mengubah BillingAccountBinding. Beberapa skenario untuk kasus penggunaan ini mencakup contoh berikut:

  • Aturan akuntansi dalam perusahaan Anda meminta agar Anda membagi biaya yang terkait dengan workload tingkat developer dan produksi ke dalam akun terpisah.
  • Anda membuat akun penagihan untuk menagih kontrak pelanggan selama jangka waktu satu tahun. Saat kontrak berakhir, Anda harus menagih untuk sisa periode yang melebihi satu tahun.

Mengubah akun penagihan tertaut untuk project

Ikuti langkah-langkah berikut untuk mengubah akun penagihan tertaut untuk project:

  1. Buat BillingAccount baru untuk ditautkan ke project. Akun ini menggantikan akun lama.

  2. Temukan file YAML resource BillingAccountBinding di namespace project untuk melihat akun penagihan mana yang ditautkan:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    
  3. Ubah BillingAccountBinding untuk ditautkan ke akun penagihan baru. Di bagian billingAccountRef, isi kolom name dengan nama BillingAccount baru yang dibuat pada langkah 1 di bagian ini.

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n PROJECT_NAME
    
  4. Setelah melakukan perubahan, pastikan akun penagihan diperbarui dengan benar:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    

Contoh berikut menunjukkan file YAML BillingAccountBinding dengan akun expired-billing-account yang ditautkan ke project project-one:

  apiVersion: billing.global.gdc.goog/v1
  kind: BillingAccountBinding
  metadata:
    # The name of a BillingAccountBinding will typically always be `billing`.
    name: billing
    # This is the project.
    namespace: project-one
  spec:
    billingAccountRef:
      # This is an example of a BillingAccount that has expired.
      name: expired-billing-account
      namespace: platform

Contoh berikut menunjukkan file YAML BillingAccountBinding dari contoh sebelumnya yang diubah untuk menautkan akun baru bernama new billing account:

  apiVersion: billing.global.gdc.goog/v1
  kind: BillingAccountBinding
  metadata:
    name: billing
    # This is the project.
    namespace: project-one
  spec:
    billingAccountRef:
      # This is the example of the new BillingAccount.
      name: new-billing-account
      namespace: platform

Mengubah akun penagihan tertaut untuk organisasi

Ikuti langkah-langkah berikut untuk mengubah akun penagihan tertaut untuk organisasi:

  1. Buat BillingAccount baru untuk ditautkan ke organisasi. Akun ini menggantikan akun lama.

  2. Temukan file YAML resource BillingAccountBinding di namespace platform untuk melihat akun penagihan mana yang ditautkan:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform
    
  3. Ubah BillingAccountBinding untuk ditautkan ke akun penagihan baru. Di bagian billingAccountRef, isi kolom name dengan nama BillingAccount baru yang dibuat pada langkah 1.

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n platform
    
  4. Setelah melakukan perubahan, pastikan akun penagihan diperbarui dengan benar:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform