-
Notifications
You must be signed in to change notification settings - Fork 4.8k
[WIP] Use Docker parser when manipulating Dockerfiles #1079
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
Conversation
pkg/build/builder/docker.go
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nuke this
|
ps. I am going to add unit tests for (at least) the new funcs this change introduces in a separate pr |
|
@Kargakis seems like you are missing some packages that the builder depends on. |
|
@Kargakis we normally do the unit tests in the same PR. |
Yes, the packages I bundle in #1103
No problem, I am going to add them here then |
pkg/build/builder/docker.go
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should err out..if we failed to do the replace, then we're not building what we're supposed to be building.
|
@bparees fixed that particular Dockerfile case you sent me. If you have any other corner cases, post them here or send them via IRC so I can work on them as well. |
Add one more layer of parsing for safety by using the Docker parser to verify the valid occurrence of a Dockerfile command.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd add a test to verify the output is also parsable, meaning valid Dockerfile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be useful but it's out of scope of the current changes ie. command replacement vs Dockerfile validation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Au contraire the resulting file MUST be valid Dockerfile as it's being the source of the docker build. So I insist on having such test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can add a test where we'll parse both the original and the new Dockerfile and compare their ASTs. Validation of the Dockerfile though is something different than what this change is supposed to do. @bparees what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That should suffice IMHO, just running Parse on the new file should be a good start without any erros is OK.
|
@Kargakis still cannot build: cannot find package "github.com/docker/docker/builder/command |
|
Merged this on #1103 alongside its dependencies. |
…service-catalog/' changes from 8f07b7b..7e650e7 7e650e7 origin build: add origin tooling f32eec2 unit test for ./pkg/rest/core/fake rest client, addresses openshift#860 Test ready to be reviewed (openshift#1113) e388aee explicitly always prefer latest OSBAPI Version (openshift#1138) 962429e Merge branch 'pr/1135' b6ee7ef fix rbac cb1beb9 Merge branch 'pr/1131' ecc5c01 Update Code of Conduct (openshift#1137) e7c5ab3 address one more PR comment ddcbbad address PR comments 652a83b fix test expectation to match the new error message for missing service class 33417cc address PR comments 565fccf Use the chart name instead of the namespace (openshift#1102) bc61919 Add new terminal failure binding condition (openshift#1057) 4e642d5 Added more detailed instructions on how to setup the repo (openshift#1114) bdaea23 update unit tests (openshift#1123) 88a9642 validate the apiserver options (openshift#1116) b0af5fc fix whitespace in the copyright section dee796a generated type changes ef585c4 Rename the directory from default to defaultservicename to conform to go style guide. Wire admission controller into the apiserver 0b5d6c6 add firewall troubleshooting section (openshift#1040) fd9e6bc Fix Typo in Events Code of Conduct (openshift#1126) ebe6506 Fix Typo in Terminology (openshift#1128) 0038b1e Merge branch 'pr/1122' 8411f31 make deprovisioning an instance asynchronously not fall-through to synchronous deprovision (openshift#1067) 76c1d93 handle failures from list and test the not ready condition, cleanup 9241296 finish unit tests, passing ed75774 Minor fixes based on go report card 9911e8d Add GoReport Widget (openshift#1121) dd24e5c clean up old cruft 08276c6 generated file changes 6489d90 Implement the default plan in admission controller a6bb576 Code: Instance/Binding parameters from secret (openshift#1079) 10bb148 Update generated files (openshift#1115) 5291e6f v0.0.15 (openshift#1118) 28a1ea6 Merge branch 'pr/1104' bb4a2d2 Merge branch 'pr/1097' 1c14a90 push all arch images on release tags (openshift#1108) b587b2c Improve log output for deprovision 8887561 Remove PodPreset embedding from Binding (openshift#1030) 1abdcc8 Adjust helm/tiller installation instructions (openshift#1091) f636f99 only skip tls verify if not behind the aggregator (openshift#1101) 43b40ab controller_broker unit test bullet-proofing openshift#1077 (openshift#1099) bb596b8 Use data store instead of database (openshift#1100) 04fa477 Implementation: Support for Bearer token auth between Service Catalog and brokers (openshift#1053) 9e46d3c refactor Jenkins e2e tests (openshift#1082) 1f0a41e remove old/misleading comments about only doing soft delete if it's "our turn--" i.e. only if the finalizer we care about is at the head of the finalizers list. 5c1d9b8 Update OSB client (openshift#1085) a6e80ea Only do work for instances from a single queue (openshift#1074) 2bd85d6 Merge branch 'pr/1076' e324287 Tweaks to the walkthrough for local-up-cluster d8b7899 Add a note to the walkthrough about getting bindings when using the aggregator (openshift#1078) ea44cf1 msg on Environment Variables to set for e2e (openshift#1070) d15554a Merge branch 'pr/1017' faf966e Add comment re: async race condition in integration tests ed2e096 v0.0.14 (openshift#1071) fc84ffd more PR feedback 283bed4 Add integration tests and some error checking; PR feedback 903a7a7 Add terminal condition for instance and do not retry failed provisions REVERT: 8f07b7b origin: add required patches git-subtree-dir: cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog git-subtree-split: 7e650e7e39c3fc79a8ecc061cce2a70e899406ff
* Reworked instance parameters with flexible structure * Switch Binding parameters to a new implementation * removed name attribute from parametersFrom * Update the implementation according to the latest proposal
Merged this on #1103 alongside its dependencies