Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delineation of env/service CF template executions #421

Open
AndreyMarchuk opened this issue Feb 12, 2019 · 0 comments
Open

Delineation of env/service CF template executions #421

AndreyMarchuk opened this issue Feb 12, 2019 · 0 comments

Comments

@AndreyMarchuk
Copy link
Contributor

Problem statement

Resources are defined in separate mu.yml each:

  • environment X
    • uses an extension to provision new IAM role (common-iam CF template) which can be used by service B
  • service A
    • uses an extension to provision DynamoDB tables
    • extension updates common-iam CF template to allow CF role to create/modify/delete DynamoDB tables
  • service B
    • uses an extension to provision SQS queue
    • extension updates common-iam CF template to allow CF role to create/modify/delete SQS queues

Case 1

  • service A and service B are being built by CI/CD at the same time
  • both of them need to update common-iam CF template/stack before provisioning the resources
  • potentially this creates a bottleneck in CI/CD performance due to each stack waiting for common-iam update (think 20 services built at the same time)
  • additionally if service A needs a lot of time to execute other CF templates after common-iam update (i.e. provision DynamoDB), service B might be updating common-iam at the same time resulting in revocation of DynamoDB provisioning permissions from common-iam and deploy failure

Case 2

  • service B starts a build right after service A finished building
  • since service A does override common-iam template, all the overrides to the same template on environment level are lost (IAM role provisioned on env level will be gone)
  • thus service B build pipeline discovers missing IAM role and fails

Potential solution

  • use global extensions/overrides on the environment level (i.e. common-iam)
  • do not execute environment level CF templates when doing svc deploy, pipeline up etc

Please let me know your thought on these issues and ideas about potential resolutions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant