Skip to content

Commit df20fc7

Browse files
Merge pull request #2976 from oracle-devrel/OperationsAdvisory-reor3
Operations advisory reor3
2 parents 09bdeff + 8bef931 commit df20fc7

4 files changed

Lines changed: 94 additions & 74 deletions

File tree

operations-advisory/customer-operations/oracle-database/Oracle Database @ Google Cloud Operations/Oracle Database @ Google Operations Best Practices/README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Operational Best Practices for Oracle Database@Google Cloud
22

3-
Last reviewed: 2026-05-20
3+
Last reviewed: 2026-05-26
44

55
This document does not define the overall operating model. The operating model is GitOps: Git remains the source of truth, changes are reviewed through pull requests, pipelines execute approved changes, and the desired state is applied, validated, or reconciled through the appropriate automation layer.
66

77
This document defines the Oracle Database@Google Cloud operational best practices that fit into that GitOps model. It explains control-plane ownership, Terraform state boundaries, Day 1 and Day 2 tool selection, handoff contracts, and drift handling for OD@GCP.
88

9-
For the implementation runbook, dependency handoff examples, and module wiring patterns, see [OD@GCP Module Handoff Reference](./odgcp-module-handoff-reference.md).
9+
For the implementation runbook, dependency handoff examples, and module wiring patterns, see [OD@GCP Module Handoff Reference](./handoff-reference.md).
1010

1111
## Table Of Contents
1212

@@ -83,7 +83,7 @@ flowchart LR
8383
class EXCEPTION exception
8484
```
8585

86-
For the concrete dependency maps, wrapper pattern, direct OCID pattern, and post-handoff checks, see [OD@GCP Module Handoff Reference](./odgcp-module-handoff-reference.md).
86+
For the concrete dependency maps, wrapper pattern, direct OCID pattern, and post-handoff checks, see [OD@GCP Module Handoff Reference](./handoff-reference.md).
8787

8888
## 3. Control-Plane Ownership and State Boundaries
8989

@@ -116,32 +116,32 @@ This section explains why the ownership split is recommended. The Google provide
116116

117117
The Google provider is the Day 1 creation and ownership provider for the Google Cloud-side OD@GCP resources. After deployment, use it for state ownership, outputs, lifecycle/deletion controls, drift visibility, and plan checks.
118118

119-
Do not use it for OD@GCP Day 2 operations. Operational changes such as Exadata Infrastructure capacity updates, VM Cluster CPU/ECPU/OCPU scaling, patching, upgrades, maintenance changes, and database lifecycle work belong to OCI-native tooling or to the controlled OCI Terraform exception path where supported.
119+
Do not use it for OD@GCP Day 2 operations. Operational changes such as Exadata Infrastructure capacity updates, VM Cluster CPU/OCPU scaling, patching, upgrades, maintenance changes, and database lifecycle work belong to OCI-native tooling or to the controlled OCI Terraform exception path where supported.
120120

121-
Terraform-managed lifecycle fields (`deletion_protection`, `deletion_policy`, and `timeouts`) can change without replacing the OD@GCP resource because they do not update the OD@GCP service configuration. API-managed fields must be treated as creation-time fields from the Google provider. For `labels`, do not assume update support even if the provider schema looks mutable; existing OD@GCP resources can reject label changes as not updatable.
121+
Terraform-managed lifecycle fields (`deletion_protection` and `timeouts`) can change without replacing the OD@GCP resource because they do not update the OD@GCP service configuration. API-managed fields must be treated as creation-time fields from the Google provider. For `labels`, do not assume update support even if the provider schema looks mutable; existing OD@GCP resources can reject label changes as not updatable.
122122

123123
| Resource | Recommended role | API-managed fields to treat as creation-time |
124124
|---|---|---|
125125
| `google_oracle_database_odb_network` | Create and own ODB Network identity on an existing VPC. | `labels`, `network`, `location`, `odb_network_id`, `gcp_oracle_zone`, `project`. |
126126
| `google_oracle_database_odb_subnet` | Create and own client and backup ODB Subnets. | `labels`, `cidr_range`, `purpose`, `odbnetwork`, `location`, `odb_subnet_id`, `project`. |
127127
| `google_oracle_database_cloud_exadata_infrastructure` | Create Cloud Exadata Infrastructure and publish OCI/cloud identifiers. | `labels`, `display_name`, `gcp_oracle_zone`, `properties`, capacity, maintenance window, customer contacts. |
128-
| `google_oracle_database_cloud_vm_cluster` | Create Cloud VM Cluster and publish the VM Cluster OCID. | `labels`, `display_name`, network/subnet references, `properties`, CPU/ECPU/OCPU, storage, memory, Grid Infrastructure version, node count, DB servers, SSH keys. |
128+
| `google_oracle_database_cloud_vm_cluster` | Create Cloud VM Cluster and publish the VM Cluster OCID. | `labels`, `display_name`, network/subnet references, `properties`, CPU (`cpu_core_count`) / OCPU (`ocpu_count`), storage, memory, Grid Infrastructure version, node count, DB servers, SSH keys. |
129129

130130
Validate any update assumption with `terraform plan` against the pinned provider version and, where needed, with the documented service behavior before use.
131131

132132
`ignore_changes` in the Google Cloud-side module is a drift contract for OCI-side operations. It prevents Terraform from trying to revert or replace resources for changes that the Google provider should not own. It does not make those fields safe to update through the Google provider.
133133

134134
### 4.3 OCI Provider Position
135135

136-
The OCI provider is the normal Terraform provider for the OCI database layer. It can also be used as a controlled exception path for selected Infrastructure or VM Cluster updates when the customers OD@GCP service model, Oracle documentation, and provider schema support the intended field.
136+
The OCI provider is the normal Terraform provider for the OCI database layer. It can also be used as a controlled exception path for selected Infrastructure or VM Cluster updates when the customer's OD@GCP service model, Oracle documentation, and provider schema support the intended field.
137137

138138
| Resource | Recommended role | Update position |
139139
|---|---|---|
140140
| `oci_database_db_home` | Normal OCI-side DB Home and initial database resource. | Use for declarative DB Home and initial CDB/database creation when the database layer must be managed through Terraform. |
141141
| `oci_database_database` | Normal OCI-side CDB/database resource when separated from DB Home lifecycle. | Use for selected declarative database settings, including database-level backup configuration where required and supported. |
142142
| `oci_database_pluggable_database` | Normal OCI-side PDB resource. | Use for declarative PDB creation and selected supported PDB lifecycle attributes. |
143143
| `oci_database_cloud_exadata_infrastructure` | Controlled exception only. | Use only for approved and supported Infrastructure fields, such as capacity, maintenance-related settings, display name, tags, or compartment-related changes where valid for the OD@GCP service model. |
144-
| `oci_database_cloud_vm_cluster` | Controlled exception only. | Use only for approved and supported VM Cluster fields, such as CPU/ECPU/OCPU, storage, memory, NSGs, license model, SSH keys, diagnostics, tags, or display name where valid for the OD@GCP service model. |
144+
| `oci_database_cloud_vm_cluster` | Controlled exception only. | Use only for approved and supported VM Cluster fields, such as CPU/OCPU, storage, memory, NSGs, license model, SSH keys, diagnostics, tags, or display name where valid for the OD@GCP service model. |
145145

146146
The OCI provider has resource support for selected Terraform-driven changes that the Google provider should not own. However, it must not become a second long-lived owner for Google-created Infrastructure or VM Cluster resources.
147147

@@ -182,7 +182,7 @@ This is not the default Day 2 operations path. Use it only for approved Infrastr
182182
1. The customer requires or has approved Terraform-driven Day 2 updates.
183183
2. The OD@GCP resource is exposed through the OCI control plane.
184184
3. The OCI provider supports the target field as updatable.
185-
4. Oracle documentation, the official provider schema, or Oracle Support confirms that the operation is valid for the customers OD@GCP service model.
185+
4. Oracle documentation, the official provider schema, or Oracle Support confirms that the operation is valid for the customer's OD@GCP service model.
186186
5. The matching Google Cloud-side `ignore_changes` contract is already in place.
187187
6. The change is evidenced with a ticket, work request where applicable, plan output, command output where applicable, and final state.
188188

@@ -204,9 +204,9 @@ The two reference module families share a single contract: the Google Cloud-side
204204
| Google Cloud networking | `modules/odb-networking` | Owns ODB Network and ODB Subnets. |
205205
| Google Cloud Exadata | `modules/exadb` | Owns Cloud Exadata Infrastructure and Cloud VM Cluster identity. |
206206
| OCI database layer | `exadata-database` | Owns DB Homes, CDBs, PDBs, and backups when that layer must be declarative. |
207-
| Handoff example | `oci-dbhome-handoff` | Resolves `vm_cluster_key` from the Google Cloud-side VM Cluster output and passes the OCI VM Cluster OCID to the OCI Exadata Database module. |
207+
| Handoff example | `oci-dbhome-handoff` | Resolves `vm_cluster_id` — either a direct OCI Cloud VM Cluster OCID or a lookup key from `gcp_cloud_vm_clusters_dependency`and passes the resolved OCI OCID to the OCI Exadata Database module. |
208208

209-
Use [OD@GCP Module Handoff Reference](./odgcp-module-handoff-reference.md) for the practical wiring details: dependency maps, direct OCID handoff, wrapper-based handoff, post-handoff checks, and common mistakes.
209+
Use [OD@GCP Module Handoff Reference](./handoff-reference.md) for the practical wiring details: dependency maps, direct OCID handoff, wrapper-based handoff, post-handoff checks, and common mistakes.
210210

211211
# License
212212

operations-advisory/customer-operations/oracle-database/Oracle Database @ Google Cloud Operations/Oracle Database @ Google Operations Best Practices/GitOps Repository, State, and Operations Design for Oracle Database@Google Cloud.md renamed to operations-advisory/customer-operations/oracle-database/Oracle Database @ Google Cloud Operations/Oracle Database @ Google Operations Best Practices/gitops-design.md

File renamed without changes.

0 commit comments

Comments
 (0)