gruntwork-io / terragrunt

Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu/Terraform to scale.
https://terragrunt.gruntwork.io/
MIT License
7.94k stars 966 forks source link

--terragrunt-include-dir doesn't work with relative paths #1614

Open queglay opened 3 years ago

queglay commented 3 years ago

I'm finding some odd behaviour with --terragrunt-include-dir. First it doesn't seem to think more than one sub dir should be included in this example:

admin:~/environment/firehawk (firehawk-init-folder) $ terragrunt run-all apply --terragrunt-include-dir /home/ec2-user/environment/firehawk/firehawk-init/modules/**
INFO[0000] Stack at /home/ec2-user/environment/firehawk:
  => Module /home/ec2-user/environment/firehawk (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/private-tls-cert (excluded: false, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-iam-profile-packer (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-instance-key-pair (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-kms-key (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-s3-bucket-software (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-s3-bucket-vault-backend (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-bastion (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-bastion (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-openvpn (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-provisioner (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-rendernode (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-vault-client (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-vpn (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vault-client (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpc-main-cloud9-peering (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-vpn])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn-post (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vault-client])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/vault (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpc-main-cloud9-peering])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/vpc (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-openvpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-provisioner, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-vault-client, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-rendernode, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/firehawk-render-cluster-done (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-node-houdini, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-vpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-node-houdini (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-rendernode])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-cloud9-peering (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc, /home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc, /home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-vault-client (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-cloud9-peering, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration])
  => Module /home/ec2-user/environment/firehawk/post-notify (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vault-client, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-bastion, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-node-houdini, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-vault-client]) 
Are you sure you want to run 'terragrunt apply' in each folder of the stack described above? (y/n) n

More importantly I also find that a relative path doesn't work at all.

admin:~/environment/firehawk (firehawk-init-folder) $ terragrunt run-all apply --terragrunt-include-dir ./firehawk-init
INFO[0000] Stack at /home/ec2-user/environment/firehawk:
  => Module /home/ec2-user/environment/firehawk (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/private-tls-cert (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-iam-profile-packer (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-instance-key-pair (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-kms-key (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-s3-bucket-software (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-s3-bucket-vault-backend (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-bastion (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-bastion (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-openvpn (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-provisioner (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-rendernode (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-vault-client (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-vpn (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vault-client (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpc-main-cloud9-peering (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-vpn])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn-post (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vault-client])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/vault (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vpc, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpc-main-cloud9-peering])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/vault])
  => Module /home/ec2-user/environment/firehawk/firehawk-main/modules/vpc (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-openvpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-provisioner, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-vault-client, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-rendernode, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/firehawk-render-cluster-done (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-node-houdini, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-vpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-deadline-db])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-node-houdini (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-iam-profile-rendernode])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc (excluded: true, dependencies: [])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-cloud9-peering (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc, /home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc, /home/ec2-user/environment/firehawk/firehawk-main/modules/vpc])
  => Module /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-vault-client (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-vault-vpc-peering, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-render-vpc-cloud9-peering, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-sg-bastion, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault, /home/ec2-user/environment/firehawk/firehawk-main/modules/vault-configuration])
  => Module /home/ec2-user/environment/firehawk/post-notify (excluded: true, dependencies: [/home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vault-client, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-vpn, /home/ec2-user/environment/firehawk/firehawk-main/modules/terraform-aws-bastion, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-node-houdini, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-deadline-db, /home/ec2-user/environment/firehawk/firehawk-render-cluster/modules/terraform-aws-vault-client]) 
Are you sure you want to run 'terragrunt apply' in each folder of the stack described above? (y/n) n

I have tried other variants of the above commands with and without wildcards.

The version is:

admin:~/environment/firehawk (firehawk-init-folder) $ terragrunt --version
terragrunt version v0.28.15
brikis98 commented 3 years ago

I'm not sure I follow. What behavior are you expecting for each of those? What does your folder structure look like?

queglay commented 3 years ago

The folder structure is as the log shows above.

For example I am running from ~/environment/firehawk. Directly in there would be one example folder:

firehawk-init/modules/private-tls-cert 

I was expecting terragrunt run-all apply --terragrunt-include-dir ./firehawk-init to include that folder above but it doesn't.

queglay commented 3 years ago

Sorry I realised that was an ambiguous example - it wasn't excluded in the first example, but only in the second. But the next line was always excluded:

Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-iam-profile-packer (excluded: true, dependencies: [])

That also is contained in the same dir firehawk-init, but it is excluded and I dont think it should be.

gchappel commented 3 years ago

I'm also seeing similar behaviour.

I'm not sure I follow. What behavior are you expecting for each of those? What does your folder structure look like?

While I can't necessarily answer for the original poster, I can tell you what I would expect based on what they supplied:

terragrunt run-all apply --terragrunt-include-dir /home/ec2-user/environment/firehawk/firehawk-init/modules/**

I would expect these two entries, which are the second and third line down in their module output to be excluded: false because it is contained within the firehawk-init/modules directory and should be glob-matched by the **

=> Module /home/ec2-user/environment/firehawk/firehawk-init/modules/private-tls-cert (excluded: false, dependencies: [])
=> Module /home/ec2-user/environment/firehawk/firehawk-init/modules/terraform-aws-iam-profile-packer (excluded: true, dependencies: [])

Digital Ocean's interactive glob checker also says they both match.

gchappel commented 3 years ago

I also have my own issues with relative paths:

gchappel99@gchappell99 ~/terragrunt/accounts/account1 » terragrunt run-all apply --terragrunt-include-dir "us-central1/**" --terragrunt-include-dir "global/vpcs/**"  --terragrunt-include-dir "europe-west4/**"
INFO[0000] Stack at /Users/gchappell99/terragrunt/accounts/account1:
  => Module /Users/gchappell99/terragrunt/accounts/account1 (excluded: true, dependencies: [])
* => Module /Users/gchappell99/terragrunt/accounts/account1/europe-west4/test-vpc/subnets (excluded: true, dependencies: [/Users/gchappell99/terragrunt/accounts/account1/global/vpcs/test-vpc])
  => Module /Users/gchappell99/terragrunt/accounts/account1/global/dns/zone1.domain.com (excluded: true, dependencies: [])
  => Module /Users/gchappell99/terragrunt/accounts/account1/global/dns/zone2.domain.com (excluded: true, dependencies: [])
  => Module /Users/gchappell99/terragrunt/accounts/account1/global/dns/zone3.domain.com (excluded: true, dependencies: [])
  => Module /Users/gchappell99/terragrunt/accounts/account1/global/dns/zone4.domain.com (excluded: true, dependencies: [])
  => Module /Users/gchappell99/terragrunt/accounts/account1/global/vpcs/test-vpc (excluded: false, dependencies: [])
  => Module /Users/gchappell99/terragrunt/accounts/account1/us-central1/cloud-run-service (excluded: false, dependencies: [/Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/serverless-connector])
* => Module /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/cloud-router (excluded: true, dependencies: [/Users/gchappell99/terragrunt/accounts/account1/global/vpcs/test-vpc, /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/egress-ip, /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/subnets])
* => Module /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/egress-ip (excluded: true, dependencies: [/Users/gchappell99/terragrunt/accounts/account1/global/vpcs/test-vpc])
  => Module /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/serverless-connector (excluded: false, dependencies: [/Users/gchappell99/terragrunt/accounts/account1/global/vpcs/test-vpc, /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/subnets])
  => Module /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc/subnets (excluded: false, dependencies: [/Users/gchappell99/terragrunt/accounts/account1/global/vpcs/test-vpc])
  => Module /Users/gchappell99/terragrunt/accounts/account1/us-central1/test-vpc2 (excluded: false, dependencies: [])
  => Module /Users/gchappell99/terragrunt/accounts/account1/us/bootstrap (excluded: true, dependencies: [])
Are you sure you want to run 'terragrunt apply' in each folder of the stack described above? (y/n)

I have highlighted three lines with a * prefix; these are entries which I believe should be included based on my current working directory and the include-dir glob I provided. Again, in this case there are some folders which are siblings of either other in my directory hierarchy, but some are included and some are excluded, and I don't see a reason (or a fix) for this.