@@ -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
90126output "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
95134output "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}
0 commit comments