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
Separate routemgmt.yml out from openwhisk.yml playbook #3760
Conversation
d957511
to
58c145d
Compare
Codecov Report
@@ Coverage Diff @@
## master #3760 +/- ##
=========================================
- Coverage 76% 71.3% -4.71%
=========================================
Files 145 145
Lines 7039 7039
Branches 424 424
=========================================
- Hits 5350 5019 -331
- Misses 1689 2020 +331
Continue to review full report at Codecov.
|
de4745b
to
e20dce5
Compare
@mdeuser can you take a look at this PR - I separated the routemgmt package installation as discussed on Slack. |
tools/vagrant/Vagrantfile
Outdated
su vagrant -c 'ansible-playbook -i environments/vagrant openwhisk.yml -e invoker_use_runc=False' | ||
su vagrant -c 'ansible-playbook -i environments/vagrant apigateway.yml' |
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.
maybe even move after postdeploy.yml
?
ansible/README.md
Outdated
The playbooks `wipe.yml` and `postdeploy.yml` should be run on a fresh deployment only, otherwise all transient | ||
data that include actions and activations are lost. | ||
The playbooks `wipe.yml` should be run on a fresh deployment only, otherwise all data are lost, including actions and activations. | ||
The `postdeploy.yml` is generally run once after a fresh deployment to install a catalog of generally useful packages. |
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.
"Run postdeploy.yml
after deployment to install a catalog of useful packages"
@rabbah - i think you have it all nicely covered. the only concern is the breaking change for folk who expect the api web actions to be installed without the extra step. just a communication thing though.. |
Right they'll break if they're using the gateway - The cli repo, and api gw repos may thus require tweaks once this PR is merged. An alternative is to have the apigateway playbook install the routemgmt package - which makes sense to me since you can't use the gateway without the package. For deployment that want to use a different gateway, they then can execute the independent routemgmt playbook separately. |
@mdeuser I pushed a commit to merge the routemgmt playbook installation with managing the API gateway itself. This should backward compatible. If someone wasn't using the apigw playbook then they will need to add the routemgmt to their deployment. |
@mdeuser can you take this reviewed it, this might have impacts to our downstream CI for the ordering of |
In preparation for a reorg in this PR apache/openwhisk#3760.
@csantanapr @mdeuser I created this PR apache/openwhisk-apigateway#314 which should be OK to merge now (Travis will verify) and will work after this PR is merged. |
@mdeuser anything for me to address on this PR? |
@mdeuser is there a repo I need to fix downstream you’re concerned about? |
@rabbah - my apologies for the delay. i've been in interrupt mode recently.. would you be ok with leaving the routemgmt.yml outside of the apigateway.yml. |
does it make sense to do that - can you explain the rationale? My thinking is:
|
i guess i was seeing if we can avoid, as much as possible, changes that require some folks to tweak their deployment procedures. currently, the apigateway.yml deployment has been agnostic as to whether or not openwhisk has been deployed; by including routemgmt in that .yml, it now requires openwhisk to have been deployed. also, any ci/cd pipelines that use a local api gw deployment in some environments, but use an already deployed production api gw in other environments will need new conditional logic when deploying openwhisk to avoid deploying routemgmt twice - a second deployment won't cause a failure, just would take some extra time. |
By pulling out routemgmt.yml from the openwhisk playbook there's already a need to adjust a deployment: if you need the package, you have to add it to the deployment explicitly. So it's move the apigw playbook down, or leave it where it is and then add a second playbook. I'm not really seeing a big benefit here since either way - there's a change. Also none of our playbooks can be deployed again without tear down - what this PR does is fix the bug in the playbook so you can properly uninstall and reinstall the packages. |
As in this PR, this is not a big change: Maybe there are other scenarios I'm missing. |
true. but imho only needing to make the routemgmt.yml change is a bit simpler in a dynamic pipeline than handling the combined apigw/routemgmt. the routemgmt is always needed - no need for conditional deployment checks based on the target environment. |
I don't follow - are you saying you have a pipeline where you deploy the apigateway once but the routemgmt package many times? |
Noting result of discussion on slack: reverted the last commit. The rationale is that the apigw playbook is deploying a component (like couchdb) and routemgmt is related to configuration (like initdb/wipedb) and consistent with how we handle the lifecycle for those component, the two playbooks herein should be separate. Thanks @mdeuser for the debate. |
pg4/1965 |
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.
changes look good to me
@mdeuser status? |
Update documentation for deployment. Add API gateway to redo.
The routemgmt playbook remains its own independent playbook so that it may be installed seperately when necessary.
@mdeuser Can this be merge? |
* Seperate route management package for API gateway from openwhisk.yml. Update documentation for deployment. Add API gateway to redo. * Install routemgmt package when running API gateway playbook. The routemgmt playbook remains its own independent playbook so that it may be installed seperately when necessary. * Revert "Install routemgmt package when running API gateway playbook." This reverts commit ae278f6. * Fix Ruby example to use puts, adding a new line.
API gateway is missing from
redo
akawskdev
. Add it and also separate thewsk
download into its own playbook. Fix bug in script which failed silently ifbinary
did not exist.Description
Related issue and scope
My changes affect the following components
Types of changes
Checklist: