Los entornos aislados de Google Distributed Cloud (GDC) requieren una cuenta de facturación para hacer un seguimiento de los costes 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 costes asociados al recurso.
Para cobrar al cliente por el uso del servicio, todas las cuentas de facturación de una organización deben usar una única hoja de precios.
Antes de empezar
Pide al administrador de gestión de identidades y accesos de tu organización que te conceda los siguientes roles obligatorios. Estos roles se vinculan al espacio de nombres del proyecto para la facturación a nivel de proyecto o al espacio de nombres de la plataforma para la facturación a nivel de organización:
Administrador de la cuenta de facturación de la organización: crea, gestiona y vincula el recurso
BillingAccount
. Pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rolorganization-billing-account-admin
.Usuario de cuenta de facturación de organización: lee, enumera y vincula el recurso
BillingAccount
. Pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rolorganization-billing-account-user
.Gestor de cuentas de facturación de la organización: puede leer, enumerar, crear y actualizar el recurso
BillingAccountBinding
. Pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rolorganization-billing-manager
.
Obtener el archivo kubeconfig
Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:
Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.
Usa la ruta al archivo kubeconfig del servidor de la API Management para sustituir
MANAGEMENT_API_SERVER_KUBECONFIG
en estas instrucciones.
Crear una cuenta de facturación
Una cuenta de facturación se identifica de forma única por su name
y su namespace
. Para crear una cuenta de facturación, usa un recurso personalizado para establecer name
y namespace
:
Crea un archivo YAML y añade el recurso personalizado
BillingAccount
y 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"
Sustituye las siguientes variables:
- BIL_ACCOUNT_NAME: el nombre de la cuenta de facturación.
Por ejemplo,
test-billing-account
. - BIL_DISPLAY_NAME: el nombre visible de la cuenta de facturación.
Por ejemplo,
"Test Billing Account"
.
- BIL_ACCOUNT_NAME: el nombre de la cuenta de facturación.
Por ejemplo,
Verifica el tipo de configuración de pago. Las cuentas de facturación de Distributed Cloud deben tener una de las siguientes configuraciones de pago:
cloudBillingConfig
: la configuración de pago predeterminada. Esta configuración almacena un ID de cuenta de facturación de Cloud.customConfig
: una configuración personalizada para que los partners almacenen su configuración de pago para facturar a la organización.customConfig
admite un diccionario de cadenas clave-valor con una clave obligatoriapayment-config-type
.
En los siguientes ejemplos se muestran fragmentos de archivos
BillingAccount
YAML para diferentes configuraciones de pago:cloudBillingConfig
spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_ID
Sustituye
CLOUD_BILLING_ACCOUNT_ID
por elGoogle Cloud ID de tu cuenta de facturación.customConfig
spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPE
Sustituye
PAYMENT_CONFIG_TYPE
por el tipo de configuración de pago que hayas elegido para tu configuración de facturación personalizada.Si no tienes la información de la configuración de tu organización, introduce los siguientes datos:
customConfig
spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"
En el siguiente archivo YAML se muestra un recurso
BillingAccount
completo con la configuración decloudBillingConfig
: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
kubectl
para aplicar el recurso en el servidor de la API Management de la organización o el proyecto específicos que quieras facturar:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
Sustituye
MANAGEMENT_API_SERVER_KUBECONFIG
por el archivo kubeconfig del servidor de la API Management.
Vincular una organización o un proyecto a una cuenta de facturación
En esta sección se explica cómo vincular una organización o un proyecto a una BillingAccount
.
Vincular un proyecto
Para vincular un proyecto a un BillingAccount
, haz lo siguiente:
Añade el siguiente contenido al archivo
billingaccountbinding.yaml
:- En la sección
billingAccountRef
, rellena el camponame
con el contenido del camponame
delBillingAccount
que quieras vincular. - En la sección
metadata
, rellena el camponamespace
con el contenido del campo idéntico del 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: platform
Sustituye
PROJECT_NAME
por el nombre del proyecto vinculado a la cuenta de facturación.- En la sección
Ejecuta el siguiente comando
kubectl
para aplicar el archivobillingaccountbinding.yaml
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Vincular una organización
Para vincular una organización a un BillingAccount
, sigue estos pasos:
Añade el siguiente contenido al archivo YAML
billingaccountbinding.yaml
:- En la sección
billingAccountRef
, rellena el camponame
con el contenido del camponame
delBillingAccount
que quieras vincular. - En la sección
metadata
, rellena el camponamespace
con el contenido del campo idéntico del 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
kubectl
para aplicar el archivobillingaccountbinding.yaml
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
Desvincular cuentas de facturación de una organización o un proyecto
En Distributed Cloud, no puedes eliminar 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 modificando el BillingAccountBinding
. Estos son algunos ejemplos de situaciones en las que se puede usar este caso práctico:
- Las normas de contabilidad de su empresa exigen que divida los cargos asociados a las cargas de trabajo de nivel de desarrollo y de producción en cuentas independientes.
- Crea una cuenta de facturación para cobrar a un cliente por un contrato de un año. Cuando el contrato caduque, debes cobrar el periodo restante que supere un año.
Para desvincular una cuenta de facturación de una organización o un proyecto, sigue estos pasos:
Crea un
BillingAccount
para vincularlo al proyecto. Esta cuenta sustituirá a la anterior.Busca el archivo YAML del recurso
BillingAccountBinding
en el proyecto o en el espacio de nombresplatform
y modifica los siguientes campos:- En la sección
billingAccountRef
, rellena el camponame
con un nuevo nombreBillingAccount
.
- 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 ejemplo siguiente 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