Creare e collegare account di fatturazione

Gli ambienti air-gap di Google Distributed Cloud (GDC) richiedono un account di fatturazione per monitorare i costi per progetti e organizzazioni. Se non colleghi un account di fatturazione a un'organizzazione o a un progetto, perderai i dati sui costi associati alla risorsa.

Per addebitare l'utilizzo del servizio al cliente, tutti gli account di fatturazione all'interno di un'organizzazione utilizzano un unico listino prezzi.

Prima di iniziare

Chiedi all'amministratore IAM dell'organizzazione di concederti i seguenti ruoli richiesti. Questi ruoli vengono associati allo spazio dei nomi del progetto per la fatturazione a livello di progetto o allo spazio dei nomi della piattaforma per la fatturazione a livello di organizzazione:

  • Amministratore account di fatturazione dell'organizzazione: crea, gestisci e associa la risorsa BillingAccount. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo organization-billing-account-admin.

  • Utente dell'account di fatturazione dell'organizzazione: legge, elenca e associa la risorsa BillingAccount. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo organization-billing-account-user.

  • Gestore account di fatturazione dell'organizzazione: legge, elenca, crea e aggiorna la risorsa BillingAccountBinding. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo organization-billing-manager.

Recupera il file kubeconfig

Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:

  1. Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.

  2. Utilizza il percorso del file kubeconfig del server API Management per sostituire MANAGEMENT_API_SERVER_KUBECONFIG in queste istruzioni.

Crea un nuovo account di fatturazione

Un account di fatturazione è identificato in modo univoco dal suo name e dal suo namespace. Per creare un account di fatturazione, utilizza una risorsa personalizzata per stabilire name e namespace:

  1. Crea un file YAML e aggiungi la risorsa personalizzata BillingAccount e i seguenti contenuti:

    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"
    

    Sostituisci le seguenti variabili:

    • BIL_ACCOUNT_NAME: il nome dell'account di fatturazione. Ad esempio, test-billing-account.
    • BIL_DISPLAY_NAME: il nome visualizzato dell'account di fatturazione. Ad esempio, "Test Billing Account".
  2. Verifica il tipo di configurazione dei pagamenti. Gli account di fatturazione Distributed Cloud devono avere una delle seguenti configurazioni di pagamento:

    • cloudBillingConfig: la configurazione di pagamento predefinita. Questa configurazione memorizza un ID account di fatturazione Cloud.

    • customConfig: una configurazione personalizzata per i partner per memorizzare la configurazione di pagamento per fatturare all'organizzazione. customConfig supporta un dizionario di stringhe chiave-valore, con una chiave obbligatoria payment-config-type.

    Gli esempi seguenti mostrano snippet di file YAML BillingAccount per diverse configurazioni di pagamento:

    cloudBillingConfig

    spec:
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: CLOUD_BILLING_ACCOUNT_ID
    

    Sostituisci CLOUD_BILLING_ACCOUNT_ID con l'Google Cloud ID account di fatturazione.

    customConfig

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

    Sostituisci PAYMENT_CONFIG_TYPE con il tipo di configurazione di pagamento che hai scelto per la configurazione di fatturazione personalizzata.

    Se non disponi delle informazioni per la configurazione customConfig della tua organizzazione, inserisci i seguenti dettagli:

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

    Il seguente file YAML mostra una risorsa BillingAccount completa con la configurazione 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. Salva il file YAML. Esegui la CLI kubectl per applicare la risorsa nel server API Management per l'organizzazione o il progetto specifico a cui vuoi addebitare i costi:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
    

    Sostituisci MANAGEMENT_API_SERVER_KUBECONFIG con il file kubeconfig del server API di gestione.

Questa sezione fornisce una serie di passaggi per collegare un'organizzazione o un progetto a un BillingAccount.

Per collegare un progetto a un BillingAccount:

  1. Aggiungi i seguenti contenuti al file: billingaccountbinding.yaml:

    • Nella sezione billingAccountRef, compila il campo name con i contenuti del campo name del BillingAccount che vuoi collegare.
    • Nella sezione metadata, compila il campo namespace con i contenuti del campo identico nella risorsa BillingAccount.

    In questo esempio, lo spazio dei nomi del progetto è PROJECT_NAME:

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

    Sostituisci PROJECT_NAME con il nome del progetto associato all'account di fatturazione.

  2. Esegui questo comando kubectl per applicare il file billingaccountbinding.yaml:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

Per collegare un'organizzazione a un BillingAccount:

  1. Aggiungi i seguenti contenuti al file YAML billingaccountbinding.yaml:

    • Nella sezione billingAccountRef, compila il campo name con i contenuti del campo name del BillingAccount che vuoi collegare.
    • Nella sezione metadata, compila il campo namespace con i contenuti del campo identico nella risorsa BillingAccount. In questo esempio, lo spazio dei nomi dell'organizzazione è platform:
    apiVersion: billing.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: platform
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    
  2. Esegui questo comando kubectl per applicare il file billingaccountbinding.yaml:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

In Distributed Cloud, non puoi eliminare un account di fatturazione. Se devi apportare una modifica alla configurazione di fatturazione, devi scollegare un'organizzazione o un progetto da un account di fatturazione esistente modificando BillingAccountBinding. Alcuni scenari per questo caso d'uso includono i seguenti esempi:

  • Le regole contabili della tua azienda richiedono di suddividere gli addebiti associati ai carichi di lavoro a livello di sviluppo e produzione in account separati.
  • Crea un account di fatturazione per addebitare un contratto cliente per un periodo di un anno. Alla scadenza del contratto, devi addebitare il periodo rimanente che supera un anno.

Per scollegare un account di fatturazione da un'organizzazione o un progetto:

  1. Crea un nuovo BillingAccount da collegare al progetto. Questo account sostituirà il vecchio account.

  2. Individua il file YAML della risorsa BillingAccountBinding nel progetto o nello spazio dei nomi platform e modifica i seguenti campi:

    • Nella sezione billingAccountRef, compila il campo name con un nuovo nome BillingAccount.

L'esempio seguente mostra un file YAML BillingAccountBinding con l'account expired-billing-account collegato al progetto 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

L'esempio seguente mostra il file YAML BillingAccountBinding dell'esempio precedente modificato per collegare un nuovo account chiamato 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