1+ // Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+ // Licensed under the Mozilla Public License v2.0
3+
4+ variable "tenancy_ocid" {}
5+ variable "user_ocid" {}
6+ variable "fingerprint" {}
7+ variable "private_key_path" {}
8+ variable "region" {}
9+ variable "compartment_id" {
10+ default = " ocid1.tenancy.oc1..aaaaaaaahowp4zu5z3p3to5mj7vjtlo7zqi2qmbjiij73vfulltlmvtf624a"
11+ }
12+ variable "disassociate_trigger" {
13+ default = 0
14+ }
15+
16+ variable "dr_protection_group_association_peer_region" {
17+ default = " us-ashburn-1"
18+ }
19+
20+ variable "dr_protection_group_association_role" {
21+ default = " STANDBY"
22+ }
23+
24+ variable "dr_protection_group_defined_tags_value" {
25+ default = " value"
26+ }
27+
28+ variable "dr_protection_group_display_name" {
29+ default = " displayName"
30+ }
31+
32+ variable "dr_protection_group_freeform_tags" {
33+ default = { " Department" = " Finance" }
34+ }
35+
36+ variable "dr_protection_group_members_member_type_oke_cluster" {
37+ default = " OKE_CLUSTER"
38+ }
39+
40+ variable "dr_protection_group_state" {
41+ default = " ACTIVE"
42+ }
43+
44+ provider "oci" {
45+ tenancy_ocid = var. tenancy_ocid
46+ user_ocid = var. user_ocid
47+ fingerprint = var. fingerprint
48+ private_key_path = var. private_key_path
49+ region = var. region
50+ }
51+
52+ resource "oci_disaster_recovery_dr_protection_group" "test_peer" {
53+ # Required
54+ compartment_id = var. compartment_id
55+ display_name = var. dr_protection_group_display_name
56+ log_location {
57+ # Required
58+ bucket = data. oci_objectstorage_bucket . test_bucket . name
59+ namespace = data. oci_objectstorage_namespace . test_namespace . namespace
60+ }
61+
62+ # Add OKE as a member
63+ members {
64+ # Required
65+ member_id = data. oci_containerengine_clusters . test_clusters . clusters [0 ]. id
66+ member_type = var. dr_protection_group_members_member_type_oke_cluster
67+ peer_cluster_id = data. oci_containerengine_clusters . peer_clusters . clusters [0 ]. id
68+ }
69+ }
70+
71+ resource "oci_disaster_recovery_dr_protection_group" "test_dr_protection_group" {
72+ # Required
73+ compartment_id = var. compartment_id
74+ display_name = var. dr_protection_group_display_name
75+ log_location {
76+ # Required
77+ bucket = data. oci_objectstorage_bucket . test_bucket . name
78+ namespace = data. oci_objectstorage_namespace . test_namespace . namespace
79+ }
80+
81+ lifecycle {
82+ ignore_changes = [defined_tags ]
83+ }
84+
85+ # Optional
86+ members {
87+ # Required
88+ member_id = data. oci_containerengine_clusters . peer_clusters . clusters [0 ]. id
89+ member_type = var. dr_protection_group_members_member_type_oke_cluster
90+ peer_cluster_id = data. oci_containerengine_clusters . test_clusters . clusters [0 ]. id
91+ }
92+
93+ association {
94+ # Required
95+ role = var. dr_protection_group_association_role
96+
97+ # Optional
98+ peer_id = oci_disaster_recovery_dr_protection_group. test_peer . id
99+ peer_region = var. dr_protection_group_association_peer_region
100+ }
101+
102+ # Optional
103+ disassociate_trigger = var. disassociate_trigger
104+
105+ defined_tags = map (" ${ oci_identity_tag_namespace . tag-namespace1 . name } .${ oci_identity_tag . tag1 . name } " , " ${ var . dr_protection_group_defined_tags_value } " )
106+ freeform_tags = var. dr_protection_group_freeform_tags
107+ }
108+
109+ data "oci_disaster_recovery_dr_protection_groups" "test_dr_protection_groups" {
110+ # Required
111+ compartment_id = var. compartment_id
112+
113+ # Optional
114+ display_name = var. dr_protection_group_display_name
115+ dr_protection_group_id = oci_disaster_recovery_dr_protection_group. test_dr_protection_group . id
116+ state = var. dr_protection_group_state
117+ }
0 commit comments