diff --git a/fast/extras/0-cicd-github/README.md b/fast/extras/0-cicd-github/README.md index 58407b5e4e..b379be31f6 100644 --- a/fast/extras/0-cicd-github/README.md +++ b/fast/extras/0-cicd-github/README.md @@ -39,6 +39,16 @@ modules_config = { # tftest skip ``` +If the modules are located in a non modules only repository, use the module_prefix attribute to set the location of your modules within the repository: + +```hcl +modules_config = { + repository_name = "GoogleCloudPlatform/cloud-foundation-fabric" + module_prefix = "modules/" +} +# tftest skip +``` + In the above example, no key options are set so it's assumed modules will be fetched from a public repository. If modules repository authentication is needed the `key_config` attribute also needs to be set. If no keypair path is specified an internally generated key will be stored as an access key in the modules repository, and as secrets in the stage repositories: diff --git a/fast/extras/0-cicd-github/main.tf b/fast/extras/0-cicd-github/main.tf index 59b9658bd3..9cf319bbf7 100644 --- a/fast/extras/0-cicd-github/main.tf +++ b/fast/extras/0-cicd-github/main.tf @@ -145,7 +145,7 @@ resource "github_repository_file" "default" { ? replace( file(each.value.file), "/source(\\s*)=\\s*\"../../../modules/([^/\"]+)\"/", - "source$1= \"git@github.com:${local.modules_repo}.git//$2${local.modules_ref}\"" # " + "source$1= \"git@github.com:${local.modules_repo}.git//${local.module_prefix}$2${local.modules_ref}\"" # " ) : file(each.value.file) ) diff --git a/fast/extras/0-cicd-github/variables.tf b/fast/extras/0-cicd-github/variables.tf index 8e5d0832ff..ea378ee789 100644 --- a/fast/extras/0-cicd-github/variables.tf +++ b/fast/extras/0-cicd-github/variables.tf @@ -30,6 +30,7 @@ variable "modules_config" { type = object({ repository_name = string source_ref = optional(string) + module_prefix = optional(string, "") key_config = optional(object({ create_key = optional(bool, false) create_secrets = optional(bool, false)