File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -285,6 +285,12 @@ modules:
285285 host : " ${{{module_source}.k8s_endpoint}}"
286286 token : " ${{data.aws_eks_cluster_auth.k8s.token}}"
287287 cluster_ca_certificate : " ${{base64decode({module_source}.k8s_ca_data)}}"
288+ custom-terraform :
289+ cloud : any
290+ location : custom-terraform
291+ halt : true
292+ variables :
293+ path_to_module : str
288294 datadog :
289295 cloud : any
290296 location : datadog
Original file line number Diff line number Diff line change 4040from opta .module_processors .azure_k8s_base import AzureK8sBaseProcessor
4141from opta .module_processors .azure_k8s_service import AzureK8sServiceProcessor
4242from opta .module_processors .base import ModuleProcessor
43+ from opta .module_processors .custom_terraform import CustomTerraformProcessor
4344from opta .module_processors .datadog import DatadogProcessor
4445from opta .module_processors .external_ssl_cert import ExternalSSLCert
4546from opta .module_processors .gcp_dns import GCPDnsProcessor
@@ -81,6 +82,7 @@ class Layer:
8182 "external-ssl-cert" : ExternalSSLCert ,
8283 "aws-s3" : AwsS3Processor ,
8384 "gcp-dns" : GCPDnsProcessor ,
85+ "custom-terraform" : CustomTerraformProcessor ,
8486 }
8587
8688 def __init__ (
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ def __init__(
2626 raise UserErrors (f"{ self .type } is not a valid module type" )
2727 self .aliased_type : Optional [str ] = None
2828 self .layer_name = layer .name
29- self .desc = REGISTRY ["modules" ][self .type ]
29+ self .desc = REGISTRY ["modules" ][self .type ]. copy ()
3030 if "alias" in self .desc :
3131 cloud = layer .cloud
3232 if cloud not in self .desc ["alias" ]:
Original file line number Diff line number Diff line change 1+ import os
2+ from typing import TYPE_CHECKING
3+
4+ from opta .module_processors .base import ModuleProcessor
5+
6+ if TYPE_CHECKING :
7+ from opta .layer import Layer
8+ from opta .module import Module
9+
10+
11+ class CustomTerraformProcessor (ModuleProcessor ):
12+ def __init__ (self , module : "Module" , layer : "Layer" ):
13+ super (CustomTerraformProcessor , self ).__init__ (module , layer )
14+
15+ def process (self , module_idx : int ) -> None :
16+ current_desc = self .module .desc
17+ self .module .module_dir_path = os .path .join (
18+ os .path .dirname (self .layer .path ), self .module .data ["path_to_module" ]
19+ )
20+ current_desc ["variables" ] = {
21+ x : "optional" for x in self .module .data .get ("terraform_inputs" , {}).keys ()
22+ }
23+ self .module .data .update (self .module .data .get ("terraform_inputs" , {}))
You can’t perform that action at this time.
0 commit comments