Skip to content

Gemini Enterprise Blueprint - Release 1.2.0#15

Merged
aghassemlouei merged 18 commits intomainfrom
feat/g4g-deployment-1.2.0
May 1, 2026
Merged

Gemini Enterprise Blueprint - Release 1.2.0#15
aghassemlouei merged 18 commits intomainfrom
feat/g4g-deployment-1.2.0

Conversation

@michael-intindola
Copy link
Copy Markdown
Collaborator

@michael-intindola michael-intindola commented Apr 13, 2026

Description

This pull request introduces significant enhancements to the deployment workflow, infrastructure, and CLI tools for the Gemini Enterprise blueprint, bumping the version to 1.2.0. The changes focus on hardening the deployment process, improving user experience, enabling advanced analytics, and extending support for regulated environments (specifically DoD IL5).

Key Changes

Deployment Script (deploy.sh)

  • Tooling Consistency: Added automated tfenv management to enforce Terraform version 1.12.2, ensuring all operators use the same environment.
  • State Management: Implemented state hydration to persist user inputs and configuration values across different deployment stages and sessions.
  • Interactive Enhancements: Added explicit prompts for selecting the compliance regime (including IL5 support), certificate management options (Google-managed vs Self-managed), topology selection, and region selection during infrastructure discovery.
  • Automation: Automated the registration and validation of Customer Managed Encryption Keys (CMEK) for Discovery Engine. Added support for discovering and importing existing GCS buckets and BigQuery datasets.
  • Helpers: Added a new menu option to assist with the distribution of Gemini licenses across multiple projects (needs further testing and validation)
  • Validations: Improved authentication handling, verified state bucket access prior to initialization, and added Access Policy discovery fallback instructions.
  • Analytics Dashboard Deployment: Added helper functions to: automate the creation of BigQuery analytics views, containerize and deploy a Streamlit dashboard to Cloud Run for usage analytics, and establish an IAP tunnel to the dashboard via a bastion VM for secure access in restricted environments.

Infrastructure (Terraform)

  • Deployment Options: Added support for a "none" deployment type, allowing provisioning without a Load Balancer or supporting networking components.
  • Security & Certificates: Added support for Google-managed SSL certificates via Certificate Manager. Supported multiple user groups for Identity-Aware Proxy (IAP) access.
  • CMEK Management: Removed CMEK key creation from Terraform, assuming keys are managed externally or via the deployment script, simplifying the lifecycle.
  • Analytics: Configured the BigQuery logging sink to use partitioned tables to improve query performance and reduce costs. Added Artifact Registry, a dedicated service account, and IAM bindings to support the Streamlit analytics dashboard. Added related outputs for automation.

CLI / Python (gem4gov.py)

  • Compliance: Added support for the DoD IL5 compliance regime, including disabling specific features and implicit model caching not yet authorized.
  • License Management: Introduced new commands for listing and distributing Gemini for Government licenses across projects.
  • Code Quality: Added Apache 2.0 license headers to files and removed unnecessary code.

Documentation & Templates

  • Documentation: Updated the README.md to reflect version 1.2.0 and the latest capabilities.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Documentation update

Deployment & Compliance Impact

  • Applicable Regimes:
    • FedRAMP High
    • DoD IL4
    • DoD IL5
  • NIST 800-53r5 Controls: Supports access control (AC), audit and accountability (AU), and system and communications protection (SC) controls through enhanced IAP configuration, partitioned audit logging, and CMEK automation.

Checklist

Code Quality & Reusability

  • My code adheres to the Maximize Reusability principle. I have not redefined common elements and have reused existing base configurations and modules where possible.
  • I have checked that no existing module or configuration in modules/ or fast/ can be leveraged for this change.
  • My code follows the established naming conventions outlined in documentation/naming-convention.md.

Documentation

  • I have updated the README.md of the modified module or blueprint.
  • I have added/updated documentation for inputs (variables) and outputs.

Security

  • My change adheres to GCP security best practices and the principle of least privilege.
  • I have ensured compliance with the targeted regime (FedRAMP High, IL5, etc.).

Testing

  • I have tested my changes locally.
  • I have included details of my testing in this PR.

Testing Performed

  • Static Analysis: Validated scripts for syntax correctness.
  • Manual Verification: Exercised the deploy.sh script through various interactive paths to ensure state hydration and resource discovery work as expected.
  • Terraform Validation: Validated the underlying Terraform configurations in gemini-stage-0 and gemini-stage-1.
  • Analytics Verification: Verified the deployment of the Streamlit dashboard and connection via IAP tunnel.

Updates the README to reflect the new version 1.2.0 and the latest capabilities of the blueprint.
Revises the infrastructure description to better explain the core components, networking, security controls, and data storage.
Clarifies the deployment automation features, including session persistence, interactive configuration, and helper functions.
Introduces support for a "none" deployment type, allowing the provisioning of the Gemini Enterprise application without a Load Balancer.
Adds support for Google-managed SSL certificates via Certificate Manager.
Simplifies CMEK management by removing key creation from Terraform and assuming keys are managed externally or via the deployment script.
Adds Analytics capabilities by creating a BigQuery sink for Discovery Engine audit logs.
Updates Data Store logic to create empty stores and wait for IAM propagation before importing data.
Supports multiple user groups for Identity-Aware Proxy (IAP) access.
Conditionally enables APIs based on the selected compliance regime.
Adds support for the IL5 compliance regime, including disabling specific features and implicit model caching not yet authorized for IL5.
Introduces new commands for listing and distributing Gemini for Government licenses across projects.
Enhances application creation by accepting display names, company names, and enabling audit logs.
Updates assistant configurations and feature toggles to align with compliance requirements.
Supports relative paths for Google Cloud Storage document imports.
Adds automated installation of tfenv and enforces Terraform version 1.12.2 to ensure consistent deployments.
Introduces state hydration to persist configuration values across different stages and sessions.
Improves authentication handling, including better Application Default Credentials (ADC) and quota project setup.
Adds support for importing existing Google Cloud Storage buckets and BigQuery datasets into Terraform state.
Provides interactive menus for selecting compliance regimes (including IL5), certificate management types, and deployment topologies.
Adds interactive BigQuery schema mapping for document imports directly within the script.
Includes a new helper function menu option for distributing Gemini licenses.
Automates CMEK key registration and validation for Discovery Engine.
Comment thread blueprints/fedramp-high/gemini-enterprise/gem4gov-cli/gem4gov.py Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gem4gov-cli/gem4gov.py
@ncurrie3 ncurrie3 moved this from Todo to In Progress in stellar-engine Apr 15, 2026
mattfsmith and others added 6 commits April 17, 2026 16:33
The existing command to enable `*.googleapis.com` in the DDG does not work as expected in Cloud Shell due to conflict between the `-I` and `-n1` flags:

```
jason@cloudshell:~ (initial-project-bfc-stellar)$ echo "iam cloudkms pubsub serviceusage cloudresourcemanager bigquery assuredworkloads cloudbilling logging iamcredentials orgpolicy" | xargs -n1 -I {} gcloud services enable "{}.googleapis.com"
xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value
ERROR: (gcloud.services.enable) PERMISSION_DENIED: Not found or permission denied for service(s): iam cloudkms pubsub serviceusage cloudresourcemanager bigquery assuredworkloads cloudbilling logging iamcredentials orgpolicy.googleapis.com.
Help Token: AVnrbfmsTEevSFSwLfl6nE2ahEtTpyBbh5Jg-fY7clGBTr7ve-gFg8ld07Un99vSg_6n0BcZq7yLF8Lkat_9Rv8fvMkXq_dtMVBr7r37M0Sv3uXF. This command is authenticated as [email protected] which is the active account specified by the [core/account] property
- '@type': type.googleapis.com/google.rpc.PreconditionFailure
  violations:
  - subject: ?error_code=220002&services=iam+cloudkms+pubsub+serviceusage+cloudresourcemanager+bigquery+assuredworkloads+cloudbilling+logging+iamcredentials+orgpolicy.googleapis.com
    type: googleapis.com
- '@type': type.googleapis.com/google.rpc.ErrorInfo
  domain: serviceusage.googleapis.com
  metadata:
    services: iam cloudkms pubsub serviceusage cloudresourcemanager bigquery assuredworkloads
      cloudbilling logging iamcredentials orgpolicy.googleapis.com
  reason: SERVICE_CONFIG_NOT_FOUND_OR_PERMISSION_DENIED
```

This simplifies the command using Bash brace expansion.
* Update issue templates

* Create pull_request_template.md

* Update .github/ISSUE_TEMPLATE/documentation-suggestion.md

Co-authored-by: Alijohn Ghassemlouei <[email protected]>

* Update .github/pull_request_template.md

Co-authored-by: Alijohn Ghassemlouei <[email protected]>

* Update bug_report.md

* Update feature request template for compliance options

* Refine bug report template formatting and text

Updated formatting and wording in the bug report template for clarity.

* Refine wording in documentation suggestion template

Updated phrasing in the documentation suggestion template for clarity.

* Update feature_request.md

* Update pull request template for compliance items

---------

Co-authored-by: Alijohn Ghassemlouei <[email protected]>
- Adds a region selection prompt during infrastructure discovery to simplify configuration.
- Skips Shared VPC, Access Policy, and Organization Policy checks when no deployment type is selected to prevent unnecessary errors.
- Enhances error handling for Access Policy discovery by providing clear manual fallback instructions.
- Verifies Terraform state bucket access prior to initialization to ensure proper permissions.
- Prompts for authentication at startup if no active access token is found.
- Elevates critical warning colors to red for better visibility of security and compliance notices.
- Displays data store names during the document import process for better clarity.
- Adds the missing Apache 2.0 license header to the engine features configuration file.
Improves query performance and reduces costs by configuring the BigQuery logging sink to use partitioned tables. This ensures that audit logs are stored more efficiently, making downstream analytics faster and more cost-effective.
Introduces a helper function to automate the creation of BigQuery analytics views. These views extract meaningful insights from audit logs, such as user activity, session details, and agent interactions.

Updates the deployment flow to guide users on generating necessary activity before creating the views, as the underlying tables are only created once activity occurs. Also adds the new function to the interactive helper menu for easy access.
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/cmek.tf
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/discovery-engine.tf Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/discovery-engine.tf Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/discovery-engine.tf Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/discovery-engine.tf Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/discovery-engine.tf Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gemini-stage-0/outputs.tf Outdated
Comment thread blueprints/fedramp-high/gemini-enterprise/gem4gov-cli/gem4gov.py Fixed
Comment thread blueprints/fedramp-high/gemini-enterprise/gem4gov-cli/gem4gov.py Dismissed
Comment thread blueprints/fedramp-high/gemini-enterprise/analytics/app.py Fixed
@aghassemlouei aghassemlouei linked an issue May 1, 2026 that may be closed by this pull request
8 tasks
@aghassemlouei aghassemlouei merged commit 8a001b6 into main May 1, 2026
7 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in stellar-engine May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Feature Request] Add Gemini Enterprise Blueprint

6 participants