FAQs
What is GCP Commitment Management?
What is GCP Commitment Management?
What's the difference between Resource-based and Spend-based CUDs?
What's the difference between Resource-based and Spend-based CUDs?
- Resource-based CUDs: Purchased at the project level for specific machine families. Requires CUD sharing to be enabled to apply discounts across projects.
- Spend-based (Flex) CUDs: Purchased at the billing account level and automatically apply to all eligible usage across all projects.
Do I need to enable CUD sharing?
Do I need to enable CUD sharing?
Why are there two access paths (Automation Agent and nOps Support)?
Why are there two access paths (Automation Agent and nOps Support)?
- Automation Agent: A service account used by nOps for autonomous purchasing, quota management, and self-healing operations.
- nOps Support: A group email provided by nOps for console access, manual overrides, dashboards, and verification.
Do I need Inform to view Commitment Inventory?
Do I need Inform to view Commitment Inventory?
Before You Start
You will need these 2 values:- GCP Integration Prerequisites — Billing export setup
- GCP Integration Setup — Link billing data to nOps, Domain Restricted Sharing when required, and service account permissions
What You’re Setting Up
nOps uses two identities to manage commitments on your behalf:Step 1: Enable CUD Sharing
CUD sharing is off by default. This must be enabled for resource-based CUD discounts to apply across projects in your billing account.billing.subscriptions.update)Open CUD Analysis
Open CUD Scope Settings
Select CUD Scope and Settings
Confirm and Enable
Enable and click Enable billing account scope.Step 2: Create a Dedicated CUD Project
nOps purchases all resource-based commitments from a single dedicated project. With CUD sharing enabled (Step 1), discounts automatically apply across all projects in the billing account.Create the Dedicated Project
Enter Project Details
- Project name:
nops-cud-purchases(or your preferred name) - Organization: Select your organization
- Location: Select the appropriate folder or organization root
Create the Project
Link Project to Billing Account
Step 3: Enable Required APIs
Navigate to APIs & Services
Select Project
nops-cud-purchases project from the top dropdownEnable Required APIs
Step 4: Create the Custom Role (Organization Level)
Below are the permissions you will grant to the nOps Custom RoleNavigate to Roles
Select Organization
Create Role
Set Role Details
- Title:
nOps Resource Manager - Description:
Least-privilege role for nOps to manage Compute Commitments, Quotas, and Service Usage - ID:
nOpsResourceManager - Role launch stage: General Availability
Add Permissions
Create the Role
Step 5: Organization IAM (Grant Roles to Both Identities)
While you’re still at the Organization level in IAM:Navigate to IAM
Confirm Organization
Grant access to the Automation Agent (Service Account)
Grant access to the Automation Agent (Service Account)
Enter nOps Service Account email
Add roles
- Cloud Asset Viewer (
roles/cloudasset.viewer) - Browser (
roles/browser) - Recommender Viewer (
roles/recommender.viewer) - Cloud SQL Viewer (
roles/cloudsql.viewer) - Cloud Run Viewer (
roles/run.viewer) - Compute Recommender Viewer (
roles/recommender.computeViewer) - (Paid support plan only) Cloud Support Tech Support Editor (
roles/cloudsupport.techSupportEditor)
Save
Grant access to nOps Support
Grant access to nOps Support
Enter nOps Support email
Add roles
- Browser (
roles/browser) - Compute Viewer (
roles/compute.viewer) - (Paid support plan only) Cloud Support Tech Support Editor (
roles/cloudsupport.techSupportEditor)
Save
Step 6: Project IAM (Grant Roles to Both Identities)
Navigate to IAM
Select Project
nops-cud-purchases project from the top dropdownGrant access to the Automation Agent (Service Account)
Grant access to the Automation Agent (Service Account)
Enter nOps Service Account email
Add roles
- Compute Viewer (
roles/compute.viewer) - nOps Resource Manager (the custom role from Step 3)
Save
Grant access to nOps Support
Grant access to nOps Support
Enter nOps Support email
Add roles
- Compute Viewer (
roles/compute.viewer)
Save
Step 7: Billing Account IAM (Grant Roles to Both Identities)
Navigate to Billing Account Management
Show info panel
Grant access to the Automation Agent (Service Account)
Grant access to the Automation Agent (Service Account)
Enter nOps Service Account email
Add roles
- Billing Account Viewer (
roles/billing.viewer) - Consumer Procurement Order Admin (
roles/consumerprocurement.orderAdmin) - Recommender Billing Account CUD Admin (
roles/recommender.billingAccountCudAdmin)
Save
Grant access to nOps Support
Grant access to nOps Support
Enter nOps Support email
Add roles
- Billing Account Viewer (
roles/billing.viewer) - Recommender Billing Account CUD Viewer (
roles/recommender.billingAccountCudViewer)
Save
Terraform Setup (Alternative to Console)
If you manage GCP with Terraform or OpenTofu, you can provision everything in Steps 3–7—the required APIs, the nOps Resource Manager custom role, and the organization-, project-, and billing account-level IAM bindings for both identities—using the official nOps module. Use this path instead of the manual console instructions in Step 3 through Step 7. Repository: nops-io/terraform-gcp-nops-commitment-management Complete these steps first — they cannot be done with the module:- Step 1: Enable CUD Sharing — a billing account setting that must be changed in the Console
- Step 2: Create a Dedicated CUD Project — the module configures an existing CUD purchase project; note the Project ID for the module input
examples/basic layout, and how to run terraform apply or tofu apply.