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

feat: new synthesizer separates assets out per CDK application #24430

Merged
merged 137 commits into from
May 19, 2023
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
ae44fc4
initial project structure
kaizencc Mar 2, 2023
b6fd1eb
skeleton implementation
kaizencc Mar 2, 2023
6b59b29
get everything to compile
kaizencc Mar 2, 2023
4ca12fe
delete extraneous files
kaizencc Mar 2, 2023
6ee9d78
more untested progress
kaizencc Mar 4, 2023
696d275
add bedrock for testing
kaizencc Mar 4, 2023
d73f27f
implement staging stack in synth
kaizencc Mar 6, 2023
5153ef5
get basic test to succeed
kaizencc Mar 6, 2023
c3628f4
remove extra lines
kaizencc Mar 7, 2023
a3a4c79
forgot to commit
kaizencc Mar 7, 2023
fc52f21
tests for docker asset and file asset
kaizencc Mar 7, 2023
e292810
add in iam roles
kaizencc Mar 8, 2023
3fd54e1
handle assets
kaizencc Mar 8, 2023
12283bd
assets
kaizencc Mar 8, 2023
8681478
small things
kaizencc Mar 8, 2023
ae2781e
2 tests
kaizencc Mar 8, 2023
143df73
add no tokens
kaizencc Mar 8, 2023
d5a50c3
better error messaging
kaizencc Mar 9, 2023
d088ec8
more work
kaizencc Mar 9, 2023
f3673ca
bootstrap role
kaizencc Mar 10, 2023
4b6944b
basic functionality for file assets
kaizencc Mar 15, 2023
70d6d85
better role
kaizencc Mar 15, 2023
3a96ee0
major clean up
kaizencc Mar 16, 2023
b7e0b6a
use bootstrapless synth
kaizencc Mar 16, 2023
b678df5
Merge branch 'main' into conroy/bootstrap
kaizencc Mar 16, 2023
b3eb0a6
expose appId to user
kaizencc Mar 17, 2023
26985ab
rename folder
kaizencc Mar 17, 2023
f1462dd
rename
kaizencc Mar 17, 2023
5dc7a5f
adr
kaizencc Mar 17, 2023
42b8566
readme start
kaizencc Mar 17, 2023
6e57c29
minor changes
kaizencc Mar 20, 2023
2a5c44e
move appId to the app props
kaizencc Mar 20, 2023
fb50b3d
new tests
kaizencc Mar 20, 2023
5483fe2
IStagingStack
kaizencc Mar 20, 2023
543bafe
lifecylce rules and kms key
kaizencc Mar 20, 2023
4085c79
wip of kms key debacle
kaizencc Mar 22, 2023
f4074b6
kms key works
kaizencc Mar 22, 2023
c3d1fff
update readme for new api
kaizencc Mar 22, 2023
827fea1
remove app chnages
kaizencc Mar 22, 2023
b77eaf9
remove app chnages
kaizencc Mar 22, 2023
b8cd873
appid
kaizencc Mar 22, 2023
7d115ca
massive changes to api but tests succeed
kaizencc Mar 23, 2023
5754712
rename folder
kaizencc Mar 23, 2023
46da1cc
add roles stuff without testing yet
kaizencc Mar 23, 2023
20c8032
minor cleanups
kaizencc Mar 24, 2023
3b55d82
error when mixing agnostic/non-agnostic stacks in an app
kaizencc Mar 24, 2023
e9b1030
additional bootstrap role test
kaizencc Mar 24, 2023
b168308
rename to app-staging-synthesizer
kaizencc Mar 24, 2023
3eee189
add documentation everywhere and comment out docker code
kaizencc Mar 24, 2023
4fbae1b
more docs
kaizencc Mar 24, 2023
d3ec8a7
couple more tests
kaizencc Mar 24, 2023
d8e3af3
Merge branch 'main' of https://github.com/aws/aws-cdk into conroy/boo…
kaizencc Apr 4, 2023
bdd8a71
get package to work under new repo restructure
kaizencc Apr 4, 2023
806221e
rename to -alpha
kaizencc Apr 5, 2023
6fcc13d
update package.json
kaizencc Apr 5, 2023
6f6c9d3
Merge branch 'main' into conroy/bootstrap
kaizencc Apr 5, 2023
477f81f
rename
kaizencc Apr 5, 2023
a9e4b5a
integ test works
kaizencc Apr 5, 2023
9269b9c
resolve qualifier in the synth
kaizencc Apr 6, 2023
9728364
90% of lifecycle rules for ephemeral assets
kaizencc Apr 6, 2023
0487959
grant access to s3 bucket to deploy role
kaizencc Apr 7, 2023
7460def
introduce new translation functions in core
kaizencc Apr 7, 2023
08cd887
use new translation functions
kaizencc Apr 7, 2023
794cc68
revamp bootstrap roles api
kaizencc Apr 10, 2023
2104e68
move tests around
kaizencc Apr 10, 2023
8a12d60
more test stuff
kaizencc Apr 10, 2023
745770f
finish s3 lifecycle rule tests
kaizencc Apr 10, 2023
5db8d0a
expose bucket prefix api
kaizencc Apr 10, 2023
2f5f962
Merge remote-tracking branch 'origin/main' into conroy/bootstrap
rix0rrr Apr 11, 2023
065e8d4
Fix build
rix0rrr Apr 11, 2023
3d83f4a
env-agnostic test
kaizencc Apr 11, 2023
b7bed7e
Move some code around
rix0rrr Apr 12, 2023
7e5ec32
Merge branch 'conroy/bootstrap' of github.com:aws/aws-cdk into conroy…
rix0rrr Apr 12, 2023
9d080b5
Merge remote-tracking branch 'origin/main' into conroy/bootstrap
rix0rrr Apr 12, 2023
6f33075
minor changes
kaizencc Apr 12, 2023
e4b15f4
Reorganize responsibilities between:
rix0rrr Apr 13, 2023
1d836aa
Merge branch 'conroy/bootstrap' of github.com:aws/aws-cdk into conroy…
rix0rrr Apr 13, 2023
cd39826
Fix build issues
rix0rrr Apr 13, 2023
d79aba3
Merge remote-tracking branch 'origin/main' into conroy/bootstrap
rix0rrr Apr 13, 2023
b642943
awslint fixes
rix0rrr Apr 13, 2023
2a84b5c
Fix unit tests
rix0rrr Apr 13, 2023
2331ef4
asset dependencies
kaizencc Apr 13, 2023
4aee77b
Merge branch 'conroy/bootstrap' of https://github.com/aws/aws-cdk int…
kaizencc Apr 13, 2023
b20cb04
wip of workgraph code. does not work yet, many errors
kaizencc Apr 14, 2023
ff3de55
Merge branch 'main' into conroy/bootstrap
kaizencc Apr 17, 2023
ffdfa8f
bigtime changes to the cli that are wip
kaizencc Apr 19, 2023
a0570d2
get to no compilation errors
kaizencc Apr 20, 2023
06dd548
all tests in deploy.test succeed
kaizencc Apr 21, 2023
16e46df
major overhaul of test to make it make sense
kaizencc Apr 21, 2023
c3268f7
fix rest of the tests in display.ts
kaizencc Apr 24, 2023
a0851eb
remove etraneous files
kaizencc Apr 24, 2023
466e3cd
callback interface for deployArtifacts
kaizencc Apr 24, 2023
13795c9
worknode is now an abstract class
kaizencc Apr 24, 2023
9c0183a
Merge branch 'main' into conroy/bootstrap
kaizencc Apr 26, 2023
01fc565
add disable prebuild to workgraph
kaizencc Apr 27, 2023
075ed8b
typo
kaizencc Apr 27, 2023
c4af16e
nested assemblies
kaizencc Apr 27, 2023
925812e
wip of app-staging stuff
kaizencc May 3, 2023
62712b8
Pass deployRoleArn
rix0rrr May 3, 2023
0c5e48c
integ tests r good
kaizencc May 3, 2023
a7b61a4
add assetname to ecr-assets
kaizencc May 3, 2023
5290ad3
update integ test
kaizencc May 4, 2023
0e25c13
more test updates
kaizencc May 4, 2023
53287e0
Merge branch 'main' into conroy/bootstrap
kaizencc May 5, 2023
21564fe
update sto ecr asets
kaizencc May 5, 2023
0cc17e5
Merge branch 'conroy/bootstrap' of https://github.com/aws/aws-cdk int…
kaizencc May 5, 2023
91389b0
grantread
kaizencc May 5, 2023
2d9719e
more unit tests
kaizencc May 8, 2023
475ebe9
unit test for gnostic stuff
kaizencc May 8, 2023
f0867bb
error when staging resource stack too large
kaizencc May 8, 2023
c6fb952
add ecr lifecycle rules
kaizencc May 9, 2023
95a9362
lint
kaizencc May 10, 2023
f679b2c
update testing suite and minor bugs
kaizencc May 10, 2023
39d95e7
readme updates, wip
kaizencc May 10, 2023
505227f
rename IStagingStack to IStagingResources
kaizencc May 11, 2023
01baa7b
more readme
kaizencc May 11, 2023
28e3324
wip integ test
kaizencc May 11, 2023
d38dc36
wip integ test
kaizencc May 11, 2023
f9443f2
Undo some changes that are now on the ot her branch
rix0rrr May 15, 2023
5162dca
Remove some more files
rix0rrr May 15, 2023
34e0cf6
Apply suggestions from code review
kaizencc May 15, 2023
5a910bb
pr feedback wip
kaizencc May 16, 2023
1437915
pr feedback, rosetta passes, tests pass
kaizencc May 16, 2023
ca3cbc6
Merge branch 'main' into conroy/bootstrap
kaizencc May 16, 2023
2ea6d0a
rename app-staging-synthesizer into app-staging-synthesizer-alpha
kaizencc May 16, 2023
d1c873b
mark template assets as ephemeral
kaizencc May 16, 2023
1b71b51
Merge branch 'conroy/bootstrap' of https://github.com/aws/aws-cdk int…
kaizencc May 16, 2023
c91fc26
fix merge
kaizencc May 16, 2023
2c60623
fix tests
kaizencc May 16, 2023
37074c4
rename ephemeral into deployTime
kaizencc May 17, 2023
e0a9089
update readme content
kaizencc May 17, 2023
af5856b
final updates
kaizencc May 17, 2023
800bd89
Merge branch 'main' into conroy/bootstrap
kaizencc May 17, 2023
b1210b3
minor renames
kaizencc May 17, 2023
48270f4
catch errors in isPublished so removePublishedAsets cannot fail
kaizencc May 17, 2023
93dad51
silence warning messages when calling is__Published
kaizencc May 19, 2023
550f50b
Merge branch 'main' into conroy/bootstrap
kaizencc May 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/@aws-cdk/core-synthesizer/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
const baseConfig = require('@aws-cdk/cdk-build-tools/config/eslintrc');
baseConfig.ignorePatterns.push('resources/**/*');
baseConfig.parserOptions.project = __dirname + '/tsconfig.json';
module.exports = baseConfig;
22 changes: 22 additions & 0 deletions packages/@aws-cdk/core-synthesizer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
*.js
*.d.ts
tsconfig.json
*.generated.ts
*.js.map
dist
coverage
.nyc_output
.jsii

.LAST_BUILD
nyc.config.js
.LAST_PACKAGE
*.snk
!.eslintrc.js

junit.xml
!jest.config.js
!**/*.snapshot/**/asset.*/*.js
!**/*.snapshot/**/asset.*/*.d.ts

!**/*.snapshot/**/asset.*/**
14 changes: 14 additions & 0 deletions packages/@aws-cdk/core-synthesizer/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

.LAST_BUILD
*.snk
junit.xml
*.ts
!*.d.ts
!*.js
!*.lit.ts
coverage
.nyc_output
*.tgz
.eslintrc.js
# exclude cdk artifacts
**/cdk.out
201 changes: 201 additions & 0 deletions packages/@aws-cdk/core-synthesizer/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
2 changes: 2 additions & 0 deletions packages/@aws-cdk/core-synthesizer/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
AWS Cloud Development Kit (AWS CDK)
Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
1 change: 1 addition & 0 deletions packages/@aws-cdk/core-synthesizer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Synthesizer
2 changes: 2 additions & 0 deletions packages/@aws-cdk/core-synthesizer/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
const baseConfig = require('@aws-cdk/cdk-build-tools/config/jest.config');
module.exports = baseConfig;
2 changes: 2 additions & 0 deletions packages/@aws-cdk/core-synthesizer/lib/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './staging-stack';
export * from './synthesizer';
Loading