[Feature Request] Gemini Enterprise CMEK index pre-warming, companion seed data store, declarative CmekConfig, and readiness probe
Maintainer thường phản hồi trong vòng 1 ngày
@Calvin-Cheng1 đang làm issue này rồi.
Từ ngày 31/10/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Feature Description
Improve the Gemini Enterprise (Gemini for Government) CMEK deployment lifecycle across FAST Stage 1 (fast/stages-aw/1-resman) and the Gemini Enterprise blueprint (blueprints/gemini-enterprise) in four areas:
- Optional Stage 1 (
1-resman) tenant CMEK index pre-warming (enable_gemini_enterprise) so the 24 to 48 hour Discovery Engine single-tenant CMEK search index allocation starts during tenant creation rather than blocking Stage 0 application deployment. - Default companion
NO_CONTENTseed data store (enable_cmek_seed_data_store = true) inblueprints/gemini-enterprise/gemini-stage-0/discovery-engine.tfso everygoogle_discovery_engine_search_engineinstance links at least two data stores (BLENDED_SEARCH), preventing Discovery Engine single-store linkage lock-in (Engines linked to a single data store cannot change their linked data store). - Declarative
google_discovery_engine_cmek_configresource management inblueprints/gemini-enterprise/gemini-stage-0/cmek.tfwith explicitdepends_onordering fromgoogle_discovery_engine_data_storeresources. - A
gem4gov datastore check-readinessCLI subcommand anddeploy.shhelper option that probesservingConfigs/default_search:search(pageSize=1) to distinguishINDEXING(HTTP 400 FAILED_PRECONDITIONwhile the initial CMEK index is building) fromREADY(HTTP 200).
Use Case
- Registering a new regional or multi-regional
CmekConfigin Discovery Engine provisions a dedicated single-tenant search index in the background that takes 24 to 48 hours to finish building (FAILED_PRECONDITION: The initial index is being built). Starting this provisioning step only when deploying the Stage 0 workload blueprint delays end-to-end validation by up to two days. - When
google_discovery_engine_search_engineis created with only a single linkeddata_store_idsentry (data_store_ids.size() == 1), the Discovery Engine API permanently blocks subsequentPatchEngineupdates from adding, swapping, or removingdata_store_idson that engine. Adding a second data store later forces Terraform to destroy and recreate the search engine, invalidating the Stage 1 load balancer backend service and URL map references. - Operators running standalone
terraform applyinsidegemini-stage-0withoutdeploy.shneed Terraform to registergoogle_discovery_engine_cmek_configbefore creating anygoogle_discovery_engine_data_storeresources. - Operators currently have no visibility in
gem4gov-cliordeploy.shinto whether the background CMEK search index allocation is stillINDEXINGorREADY.
Proposed Solution
- In
fast/stages-aw/1-resman/variables.tf,fast/stages-aw/1-resman/branch-tenants.tf,fast/stages-aw/1-resman/kms.tf, andfast/stages-aw/1-resman/outputs-tenants.tf, add an opt-inenable_gemini_enterprise = optional(bool, false)tenant attribute that enablesdiscoveryengine.googleapis.com, creates the<env>-usKMS keyring andgemini-enterprisekey inus, grantsroles/cloudkms.cryptoKeyEncrypterDecryptertoservice-<project_number>@gcp-sa-discoveryengine.iam.gserviceaccount.com, registersgoogle_discovery_engine_cmek_config, and provisions an emptyNO_CONTENTseed data store (${tenant}-ge-cmek-seed-ds). - In
blueprints/gemini-enterprise/gemini-stage-0/discovery-engine.tfandblueprints/gemini-enterprise/gemini-stage-0/variables.tf, provisiongoogle_discovery_engine_data_store.cmek_seed(enable_cmek_seed_data_store = trueby default) alongsidedefault_connector_datastoreand wire both intogoogle_discovery_engine_search_engine.gemini_enterprise_search_engine.data_store_idssodata_store_idsalways contains at least two stores. - In
blueprints/gemini-enterprise/gemini-stage-0/cmek.tf, managegoogle_discovery_engine_cmek_config.default(set_default = true,deletion_policy = "ABANDON") and adddepends_on = [google_discovery_engine_cmek_config.default]to allgoogle_discovery_engine_data_storeresources indiscovery-engine.tf. - In
blueprints/gemini-enterprise/gem4gov-cli/data_stores.py,blueprints/gemini-enterprise/gem4gov-cli/gem4gov.py, andblueprints/gemini-enterprise/deploy.sh, addgem4gov datastore check-readinessto queryservingConfigs/default_search:search(pageSize=1) and reportINDEXINGversusREADY.
Compliance & Deployment Context
- Target Deployment Type(s):
- US Region Restricted (e.g., Access Policy constraint)
- FedRAMP Medium
- FedRAMP High
- DoD IL4
- DoD IL5
- All / General
- Relevant NIST 800-53r5 Controls: SC-12 (Cryptographic Key Establishment and Management), SC-28 (Protection of Information at Rest), CM-2 (Baseline Configuration).
Reusability Check
Stellar Engine prioritizes reusability.
- I have checked if this can be implemented using or extending an existing module in Cloud Foundation Fabric (which Stellar Engine is forked from).
- I have checked if this functionality already exists in another part of Stellar Engine and can be refactored for reuse.
Alternatives Considered
- Waiting until Stage 0 application rollout to register
CmekConfigleaves operators blocked for 24 to 48 hours while the single-tenant CMEK search index initializes. - Creating the search engine with a single data store forces destructive replacement of
google_discovery_engine_search_enginewhenever additional GCS or BigQuery data stores are linked later.
Additional Context
- Affects
fast/stages-aw/1-resmanandblueprints/gemini-enterprise(gemini-stage-0,gem4gov-cli, anddeploy.sh).
- Ngôn ngữ chính
- HCL
- Star
- 61
- Fork
- 28
- Merge trung bình
- 1 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 72
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của google/stellar-engine
-
Documentation Level of Effort - Low Priority - Low Scope - Fast
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
google/stellar-engine#385 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Enhancement Framework - FedRAMP High Level of Effort - Low Priority - Medium Scope - Blueprint Scope - Module
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
google/stellar-engine#320 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature Request] Support regulated and non-regulated multi-tenancy within a single GCP OrganizationĐang mởEnhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
google/stellar-engine#388 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Feature Request: Support regulated and non-regulated multi-tenancy within a single GCP OrganizationCó thể đã có người làm @Calvin-Cheng1 đã nhận 1 ngày trước. Đang mở
google/stellar-engine#387 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Enhancement] blueprints/il5, fedramp-high: scope project-wide IAM bindings to resources, wire CMEK, and restrict firewall targetsCó thể đã có người làm @LeonxLJX đã nhận 3 ngày trước. Đang mởEnhancement Framework - FedRAMP High Framework - IL5 Level of Effort - Medium Priority - Medium Scope - Blueprint Security
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 32/100
google/stellar-engine#374 ·
Maintainer thường phản hồi trong vòng 1 ngày