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 yang diperlukan berikut. Peran ini terikat ke namespace project untuk penagihan tingkat project, atau namespace platform untuk penagihan tingkat organisasi:

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

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

  • Pengelola Akun Penagihan Organisasi: 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 Management API, pastikan Anda memiliki resource berikut:

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

  2. Gunakan jalur ke file kubeconfig server Management API untuk menggantikan MANAGEMENT_API_SERVER_KUBECONFIG dalam petunjuk ini.

Buat akun penagihan baru

Akun penagihan diidentifikasi secara unik oleh name dan namespace-nya. 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.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 YAML BillingAccount untuk berbagai konfigurasi pembayaran:

    cloudBillingConfig

    spec:
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: CLOUD_BILLING_ACCOUNT_ID
    

    Ganti CLOUD_BILLING_ACCOUNT_ID dengan Google Cloud ID akun penagihan 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.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 kubectl CLI untuk menerapkan resource di server Management API untuk organisasi atau project tertentu yang ingin Anda tagih:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
    

    Ganti MANAGEMENT_API_SERVER_KUBECONFIG dengan file kubeconfig server Management 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.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 MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

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.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 MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

Di Distributed Cloud, Anda tidak dapat menghapus akun penagihan. Jika Anda memerlukan perubahan pada konfigurasi penagihan, Anda harus membatalkan tautan organisasi atau project dari akun penagihan yang ada 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.

Untuk membatalkan tautan akun penagihan dari organisasi atau project, lakukan hal berikut:

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

  2. Temukan file YAML resource BillingAccountBinding di project atau namespace platform, lalu ubah kolom berikut:

    • Di bagian billingAccountRef, isi kolom name dengan nama BillingAccount baru.

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

  apiVersion: billing.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.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