Skip to content

Commit 560b741

Browse files
robo-caphyder
authored andcommitted
fix kms policy - cluster dependency
1 parent b0b1738 commit 560b741

File tree

4 files changed

+51
-5
lines changed

4 files changed

+51
-5
lines changed

module-cluster.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ module "cluster" {
131131
},
132132
local.service_lb_freeform_tags,
133133
)
134+
depends_on = [
135+
module.iam_cluster_prerequisites,
136+
]
134137
}
135138

136139
output "cluster_id" {

module-iam.tf

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,45 @@ locals {
4444
create_iam_kms_policy = anytrue([
4545
var.create_iam_kms_policy == "always",
4646
var.create_iam_kms_policy == "auto" && anytrue([
47-
coalesce(var.worker_volume_kms_key_id, "none") != "none",
47+
# coalesce(var.worker_volume_kms_key_id, "none") != "none", ## Validated in group-workers.tf in the IAM module.
4848
coalesce(var.cluster_kms_key_id, "none") != "none",
4949
])
5050
])
51+
default_policy_name = format("oke-cluster-%v", local.state_id)
52+
prerequisites_policy_name = format("oke-cluster-prerequisites-%v", local.state_id)
53+
}
54+
55+
# Default IAM sub-module implementation for OKE cluster
56+
module "iam_cluster_prerequisites" {
57+
source = "./modules/iam"
58+
compartment_id = local.compartment_id
59+
state_id = local.state_id
60+
tenancy_id = local.tenancy_id
61+
cluster_id = var.cluster_id
62+
create_iam_resources = var.create_iam_resources
63+
create_iam_autoscaler_policy = false
64+
create_iam_kms_policy = local.create_iam_kms_policy
65+
create_iam_operator_policy = false
66+
create_iam_worker_policy = false
67+
policy_name = local.prerequisites_policy_name
68+
69+
create_iam_tag_namespace = var.create_iam_tag_namespace
70+
create_iam_defined_tags = var.create_iam_defined_tags
71+
defined_tags = local.iam_defined_tags
72+
freeform_tags = local.iam_freeform_tags
73+
tag_namespace = var.tag_namespace
74+
use_defined_tags = var.use_defined_tags
75+
76+
cluster_kms_key_id = var.cluster_kms_key_id
77+
operator_volume_kms_key_id = var.operator_volume_kms_key_id
78+
worker_volume_kms_key_id = var.worker_volume_kms_key_id
79+
80+
autoscaler_compartments = local.autoscaler_compartments
81+
worker_compartments = local.worker_compartments
82+
83+
providers = {
84+
oci.home = oci.home
85+
}
5186
}
5287

5388
# Default IAM sub-module implementation for OKE cluster
@@ -59,9 +94,10 @@ module "iam" {
5994
cluster_id = local.cluster_id
6095
create_iam_resources = var.create_iam_resources
6196
create_iam_autoscaler_policy = local.create_iam_autoscaler_policy
62-
create_iam_kms_policy = local.create_iam_kms_policy
97+
create_iam_kms_policy = false
6398
create_iam_operator_policy = local.create_iam_operator_policy
6499
create_iam_worker_policy = local.create_iam_worker_policy
100+
policy_name = local.default_policy_name
65101

66102
create_iam_tag_namespace = var.create_iam_tag_namespace
67103
create_iam_defined_tags = var.create_iam_defined_tags
@@ -89,10 +125,16 @@ output "availability_domains" {
89125

90126
output "dynamic_group_ids" {
91127
description = "Cluster IAM dynamic group IDs"
92-
value = module.iam.dynamic_group_ids
128+
value = concat(
129+
coalesce(module.iam_cluster_prerequisites.dynamic_group_ids, []),
130+
coalesce(module.iam.dynamic_group_ids, [])
131+
)
93132
}
94133

95134
output "policy_statements" {
96135
description = "Cluster IAM policy statements"
97-
value = module.iam.policy_statements
136+
value = concat(
137+
coalesce(module.iam_cluster_prerequisites.policy_statements, []),
138+
coalesce(module.iam.policy_statements, [])
139+
)
98140
}

modules/iam/policy.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ resource "oci_identity_policy" "cluster" {
2222
count = local.has_policy_statements ? 1 : 0
2323
compartment_id = var.compartment_id
2424
description = format("Policies for OKE Terraform state %v", var.state_id)
25-
name = local.cluster_group_name
25+
name = var.policy_name
2626
statements = local.policy_statements
2727
defined_tags = local.defined_tags
2828
freeform_tags = local.freeform_tags

modules/iam/variables.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ variable "create_iam_autoscaler_policy" { type = bool }
2323
variable "create_iam_kms_policy" { type = bool }
2424
variable "create_iam_operator_policy" { type = bool }
2525
variable "create_iam_worker_policy" { type = bool }
26+
variable "policy_name" { type = string }
2627

2728
# KMS
2829
variable "cluster_kms_key_id" { type = string }

0 commit comments

Comments
 (0)