Skip to content

Commit 4c7eac6

Browse files
author
Conor Maher
committed
Support setting the underlying terraform aws provider role per stage
1 parent 1ca226b commit 4c7eac6

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

chalice/config.py

+7
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,13 @@ def reserved_concurrency(self):
372372
varies_per_chalice_stage=True,
373373
varies_per_function=True)
374374

375+
@property
376+
def terraform_assume_role(self):
377+
# type: () -> str
378+
return self._chain_lookup('terraform_assume_role',
379+
varies_per_chalice_stage=True,
380+
varies_per_function=False)
381+
375382
def scope(self, chalice_stage, function_name):
376383
# type: (str, str) -> Config
377384
# Used to create a new config object that's scoped to a different

chalice/package.py

+11
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,7 @@ def generate(self, resources):
822822

823823
for resource in resources:
824824
self.dispatch(resource, template)
825+
self._inject_terraform_provider(template)
825826
return template
826827

827828
def _fref(self, lambda_function, attr='arn'):
@@ -1406,6 +1407,16 @@ def _generate_domainname(self, resource, template):
14061407
# type: (models.DomainName, Dict[str, Any]) -> None
14071408
pass
14081409

1410+
def _inject_terraform_provider(self, template):
1411+
# type: (Dict[str, Any]) -> None
1412+
if self._config.terraform_assume_role is None:
1413+
return
1414+
provider = template.setdefault("provider", {})
1415+
aws_provider = provider.setdefault("aws", {})
1416+
aws_provider['assume_role'] = {
1417+
'role_arn': self._config.terraform_assume_role
1418+
}
1419+
14091420

14101421
class AppPackager(object):
14111422
def __init__(self,

0 commit comments

Comments
 (0)