Skip to main content

Available Features

Badal Foundations provides a rich set of infrastructure features that are available at the organization, Business Unit, or Tenant level. This guide summarizes each feature, how it works, and how to enable it.

Google Artifact Registry (GAR)

Level: Business Unit + Tenant

Google Artifact Registry provides a centralized, secure location for storing and managing build artifacts. Foundations implements a tiered architecture:

Tiered Architecture

LayerTypePurpose
BU virtual reposVirtualSingle pull endpoint for consumers — aggregates all upstream repos
BU standard reposStandardBU-wide shared artifacts (shared tenant project)
Tenant standard reposStandardPer-tenant, per-environment artifact storage

Supported Artifact Types

TypeUse Case
DOCKERContainer images
PYTHONPython packages (pip)
NPMNode.js packages
MAVENJava packages

Enabling GAR

GAR is enabled at BU creation time:

gar_config = {
enabled = true
artifact_types = ["DOCKER", "PYTHON"]
}

When a Tenant is added to a GAR-enabled BU, tenant-level standard repositories are automatically created and linked as upstreams to the BU virtual repositories.

Region

All GAR repositories are created in northamerica-northeast1 (Montreal), the primary region for the Foundations deployment.

VPC Service Controls

Level: Organization (via Restricted VPC)

VPC Service Controls (VPC-SC) create a security perimeter around Google Cloud resources to prevent data exfiltration. Foundations implements this through the restricted Shared VPC.

How It Works

  • Workloads in the base VPC have standard API access
  • Workloads in the restricted VPC are inside a VPC-SC perimeter
  • The perimeter restricts which Google APIs can be called and from where
  • Access is mediated through access levels and ingress/egress rules

When to Use Restricted VPC

ScenarioVPC
General workloads, internal toolsBase
Sensitive data processing, PII handlingRestricted
Regulated workloads (PCI, HIPAA)Restricted
External-facing services with strict controlsRestricted

Tenants request attachment to either the base or restricted VPC when their projects are created.

Budget Alerts and Cost Management

Level: Tenant

Budget alerts help teams manage cloud spend. Each Tenant can configure per-environment budgets.

Configuration

budget_config = {
enabled = true
amount = 1000 # Monthly budget in USD
alerts = [0.5, 0.8, 1.0] # Alert thresholds (percentages)

notification_channels = [
"projects/my-project/notificationChannels/12345"
]
}

Alert Thresholds

ThresholdMeaning
0.5Alert when 50% of budget is consumed
0.8Alert when 80% of budget is consumed
1.0Alert when 100% of budget is consumed

Best Practices

  • Set lower budgets for dev environments, higher for production
  • Use different notification channels per environment (e.g., Slack for dev, PagerDuty for prod)
  • Review billing exports in prj-c-billing-logs for detailed cost analysis

Centralized Logging

Level: Organization

All GCP audit logs and platform logs are collected centrally for security monitoring and compliance.

Architecture

ComponentProjectPurpose
Centralized loggingprj-c-loggingAggregates org-wide audit and data access logs
Billing logsprj-c-billing-logsBilling export to BigQuery for cost analysis
BigQuery exportsprj-c-loggingQueryable log data for security investigations

What Gets Logged

  • Admin Activity audit logs (always on)
  • Data Access audit logs (configurable per service)
  • System Event audit logs
  • Billing data exports

Security Command Center

Level: Organization

Security Command Center (SCC) provides centralized threat detection and vulnerability management across the entire GCP organization.

Capabilities

FeatureDescription
Vulnerability scanningIdentifies misconfigurations and vulnerabilities in GCP resources
Threat detectionDetects anomalous activity using built-in threat models
Security Health AnalyticsMonitors compliance with security best practices
Web Security ScannerScans web applications for common vulnerabilities

SCC is managed through the prj-c-scc project in the common folder.

Organization Policies

Level: Organization

Badal Foundations enforces a comprehensive set of organization policies to maintain security posture across all projects.

Compute Policies

PolicyEffect
Disable nested virtualizationPrevents VMs from running nested hypervisors
Disable serial port accessBlocks serial port connections to VMs
Require OS LoginEnforces OS Login for SSH access to VMs
No external IPs on VMsPrevents VMs from having public IP addresses

IAM Policies

PolicyEffect
Disable SA key creationForces use of WIF instead of static keys
Disable default SA grantsPrevents default compute SA from getting Editor role

Storage Policies

PolicyEffect
Uniform bucket-level accessEnforces consistent bucket access control
No public bucketsPrevents accidental exposure of storage data

SQL Policies

PolicyEffect
Restrict public IPPrevents Cloud SQL instances from having public endpoints

Network Policies

PolicyEffect
Domain-restricted sharingLimits resource sharing to the organization's domain
VPC SC access policyDefines the org-wide VPC Service Controls policy
note

The fldr-pci-dss folder is excluded from most organization policies to accommodate PCI-DSS compliance requirements that may need different security controls.

PCI-DSS Compliance Zone

Level: Organization

For workloads that must comply with PCI-DSS (Payment Card Industry Data Security Standard), Foundations provides a dedicated folder:

  • Folder: fldr-pci-dss
  • Excluded from standard org policies to allow PCI-specific controls
  • Designed for workloads that process, store, or transmit cardholder data
  • Custom security policies can be applied at the folder level

Databricks Integration

Level: Business Unit

Foundations supports Databricks workspace provisioning for data engineering and machine learning workloads.

  • Managed through the gcp-foundations-projects repository (see the databricks/ subdirectory)
  • Databricks workspaces are created within BU project structures
  • Integrated with the Shared VPC for network connectivity

Backstage Developer Portal

Level: Organization

Backstage provides a self-service developer portal for the Foundations platform.

Repository: repo-devex-backstage

Custom Plugins

The Foundations Backstage instance includes 15 custom plugins:

PluginPurpose
homepage-linksCustomized homepage with useful links
claude-flowAI assistant integration
vault-secretsHashiCorp Vault secret management
terraform-cloudTFC workspace visibility and management
mockupDesign mockup viewer
gemini-agentGemini AI integration

Self-Service Templates

Five active templates for infrastructure provisioning:

TemplatePurpose
create-business-unitCreate a new BU
create-tenantCreate a new Tenant within a BU
create-sandbox-projectCreate a sandbox GCP project
edit-tenant-moduleModify tenant infrastructure
edit-business-unitModify BU configuration

Infrastructure

  • Runtime: Cloud Run on GCP
  • Database: Cloud SQL PostgreSQL 15
  • Secrets: HashiCorp Vault
  • Auth: GitHub OAuth + Google OAuth
  • Registry: GAR for container images

CI/CD with Reusable Workflows

Level: Organization

Repository: devex-reusable-workflows

A library of 14 reusable GitHub Actions workflows and 22+ composite actions that standardize CI/CD across all Foundations repositories.

Key Workflows

WorkflowPurpose
terraform-prPlan and validate Terraform on PRs
terraform-ciApply Terraform on merge
docker-pr / docker-ci / docker-releaseBuild, test, and publish container images
semantic-releaseAutomated versioning and changelog generation
generate-backendsGenerate TFC backend configurations
tfc-plan / tfc-applyTerraform Cloud plan and apply operations
release-pleaseAutomated release management

Composite Actions

Organized by domain:

  • docker/* — Docker build, push, tag operations
  • github/* — GitHub API interactions, PR management
  • terraform/* — Terraform init, validate, plan, apply
  • release-please/* — Release automation

Versioning

Workflows use independent versioning with path-based tags (e.g., workflows/terraform-ci/v0.3.0), allowing teams to pin to specific versions.

Documentation Standards

Level: Organization

Repository: badal-documentation-standard

Two documentation standards are available:

StandardToolUse Case
GenericMkDocsNon-Terraform repositories
TerraformDocusaurusTerraform modules and infrastructure repos

Each standard includes bootstrap scripts that auto-discover git context and generate catalog-info.yaml for Backstage integration.

Feature Summary

FeatureLevelEnabled By
GAR (Artifact Registry)BU + TenantBU creation config
VPC Service ControlsOrganizationRestricted VPC attachment
Budget alertsTenantTenant creation config
Centralized loggingOrganizationAlways on
Security Command CenterOrganizationAlways on
Org policiesOrganizationAlways on
PCI-DSS zoneOrganizationFolder placement
DatabricksBUProject config
Backstage portalOrganizationDeployed separately
Reusable workflowsOrganizationReferenced in repos
Documentation standardsOrganizationBootstrap script