Los entornos aislados de Google Distributed Cloud (GDC) requieren una cuenta de facturación para hacer un seguimiento de los costos de los proyectos y las organizaciones. Si no vinculas una cuenta de facturación a una organización o un proyecto, perderás los datos de costos asociados al recurso.
Para cobrarle al cliente el uso del servicio, todas las cuentas de facturación de una organización usan una sola hoja de precios.
Antes de comenzar
Pídele al administrador de IAM de tu organización que te otorgue los siguientes roles obligatorios. Estos roles se vinculan al espacio de nombres del proyecto para la facturación a nivel del proyecto o al espacio de nombres de la plataforma para la facturación a nivel de la organización:
Administrador de la cuenta de facturación de la organización: Crea, administra y vincula el recurso
BillingAccount. Pídele al administrador de IAM de tu organización que te otorgue el rol deorganization-billing-account-admin.Usuario de la cuenta de facturación de la organización: Puede leer, enumerar y vincular el recurso
BillingAccount. Pídele al administrador de IAM de tu organización que te otorgue el rol deorganization-billing-account-user.Administrador de cuentas de facturación de la organización: Puede leer, enumerar, crear y actualizar el recurso
BillingAccountBinding. Pídele al administrador de IAM de tu organización que te otorgue el rol deorganization-billing-manager.
Obtén el archivo kubeconfig
Para ejecutar comandos en el servidor de la API de Management, asegúrate de tener los siguientes recursos:
Accede y genera el archivo kubeconfig para el servidor de la API de Management si no tienes uno.
Usa la ruta de acceso al archivo kubeconfig del servidor de la API de administración para reemplazar
MANAGEMENT_API_SERVER_KUBECONFIGen estas instrucciones.
Crea una cuenta de facturación nueva
Una cuenta de facturación se identifica de forma única por su name y namespace. Para crear una cuenta de facturación, usa un recurso personalizado para establecer name y namespace:
Crea un archivo YAML y agrega el recurso personalizado
BillingAccounty el siguiente contenido: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"Reemplaza las siguientes variables:
- BIL_ACCOUNT_NAME: Es el nombre de la cuenta de facturación.
Por ejemplo,
test-billing-account - BIL_DISPLAY_NAME: Es el nombre visible de la cuenta de facturación.
Por ejemplo,
"Test Billing Account"
- BIL_ACCOUNT_NAME: Es el nombre de la cuenta de facturación.
Por ejemplo,
Verifica el tipo de configuración de pagos. Las cuentas de facturación de Distributed Cloud deben tener una de las siguientes configuraciones de pago:
cloudBillingConfig: Es la configuración de pago predeterminada. Esta configuración almacena un ID de cuenta de Facturación de Cloud.customConfig: Es una configuración personalizada para que los socios almacenen su configuración de pagos y facturen a la organización.customConfigadmite un diccionario de cadenas clave-valor, con una clave obligatoriapayment-config-type.
En los siguientes ejemplos, se muestran fragmentos de archivos YAML de
BillingAccountpara diferentes configuraciones de pago:cloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDReemplaza
CLOUD_BILLING_ACCOUNT_IDpor el ID de tu cuenta de facturación deGoogle Cloud .customConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPEReemplaza
PAYMENT_CONFIG_TYPEpor el tipo de configuración de pagos que elegiste para tu configuración de facturación personalizada.Si no tienes la información de configuración de
customConfigde tu organización, ingresa los siguientes detalles:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"En el siguiente archivo YAML, se muestra un recurso
BillingAccountcompleto con la configuracióncloudBillingConfig: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"Guarda el archivo YAML. Ejecuta la CLI de
kubectlpara aplicar el recurso en el servidor de la API de Management para la organización o el proyecto específicos que deseas facturar:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yamlReemplaza
MANAGEMENT_API_SERVER_KUBECONFIGpor el archivo kubeconfig del servidor de la API de Management.
Vincula una organización o un proyecto a una cuenta de facturación
En esta sección, se proporcionan una serie de pasos para vincular una organización o un proyecto a un BillingAccount.
Vincular un proyecto
Para vincular un proyecto a un BillingAccount, haz lo siguiente:
Agrega el siguiente contenido al archivo
billingaccountbinding.yaml:- En la sección
billingAccountRef, completa el camponamecon el contenido del camponameen elBillingAccountque deseas vincular. - En la sección
metadata, completa el camponamespacecon el contenido del campo idéntico en el recursoBillingAccount.
En este ejemplo, el espacio de nombres del proyecto es PROJECT_NAME:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platformReemplaza
PROJECT_NAMEpor el nombre del proyecto vinculado a la cuenta de facturación.- En la sección
Ejecuta el siguiente comando
kubectlpara aplicar el archivobillingaccountbinding.yaml:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Cómo vincular una organización
Para vincular una organización a un BillingAccount, haz lo siguiente:
Agrega el siguiente contenido al archivo YAML
billingaccountbinding.yaml:- En la sección
billingAccountRef, completa el camponamecon el contenido del camponameen elBillingAccountque deseas vincular. - En la sección
metadata, completa el camponamespacecon el contenido del campo idéntico en el recursoBillingAccount. En este ejemplo, el espacio de nombres de la organización esplatform:
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform- En la sección
Ejecuta el siguiente comando
kubectlpara aplicar el archivobillingaccountbinding.yaml:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Desvincula cuentas de facturación de una organización o un proyecto
En Distributed Cloud, no puedes borrar una cuenta de facturación. Si necesitas cambiar la configuración de facturación, debes desvincular una organización o un proyecto de una cuenta de facturación existente. Para ello, modifica el objeto BillingAccountBinding. Estos son algunos ejemplos de situaciones para este caso de uso:
- Las reglas de contabilidad de tu empresa exigen que dividas los cargos asociados con las cargas de trabajo a nivel de producción y de desarrollador en cuentas separadas.
- Creas una cuenta de facturación para cobrar un contrato del cliente por un período de un año. Cuando venza el contrato, debes cobrar el período restante que supere un año.
Para desvincular una cuenta de facturación de una organización o un proyecto, haz lo siguiente:
Crea un nuevo
BillingAccountpara vincularlo al proyecto. Esta cuenta reemplazará a la anterior.Ubica el archivo YAML del recurso
BillingAccountBindingen el proyecto o el espacio de nombresplatformy modifica los siguientes campos:- En la sección
billingAccountRef, completa el camponamecon un nombre deBillingAccountnuevo.
- En la sección
En el siguiente ejemplo, se muestra un archivo YAML BillingAccountBinding con la cuenta expired-billing-account vinculada al proyecto 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
En el siguiente ejemplo, se muestra el archivo YAML BillingAccountBinding del ejemplo anterior modificado para vincular una cuenta nueva llamada 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