Canarie-api should not be a mandatory component#310
Conversation
|
Can one of the admins verify this patch? |
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/1424/Result : success BIRDHOUSE_DEPLOY_BRANCH : proxy-rewrite DACCS_CONFIGS_BRANCH : master PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master PAVICS_SDI_BRANCH : master DESTROY_INFRA_ON_EXIT : true PAVICS_HOST : https://host-140-118.rdext.crim.ca PAVICS-e2e-workflow-tests Pipeline ResultsTests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/1056/NOTEBOOK TEST RESULTS |
tlvu
left a comment
There was a problem hiding this comment.
Totally approve the spirit of this PR. However I probably will not be able to perform a proper review of this PR and your 2 other PR as well this week. I have to give a hand for the paper David is alluring about in this comment #300 (comment)
However I do not want to hold you back either. So I propose that as long as your PR is back-compat (no manual intervention required to roll-out, to clean up after roll-out, to ensure subsequent autodeploy works) and Francis is okay with it, then go ahead and merge.
If later we find some problems, ex: the component load order changed and it's a regression, we can simply just fix it in a subsequent PR, just like the component load order. There is no requirement a PR is perfect on first try. Software have bugs all the time.
tlvu
left a comment
There was a problem hiding this comment.
Quick review, just minor comment.
birdhouse/config/proxy/default.env
Outdated
|
|
||
| # Folder inside "proxy" container to drop extra monitoring config | ||
| export CANARIE_MONITORING_EXTRA_CONF_DIR="/conf.d" | ||
| export PROXY_IMAGE="nginx" |
There was a problem hiding this comment.
I would rather pin the specific latest version at this point in time. Because latest version is not reproducible. It changes on each build.
Reproducibility is very important if we want to be able to diagnose problem across multiple different deployments of PAVICS.
For a given PAVICS tag, we should know precisely which version of the binary is being deployed. We do allow image override via env.local but that's mostly for testing or the staging env. For production deployment, I think and hope most users will want to stick to the tested versions coming from the stack.
There was a problem hiding this comment.
Sure and I agree. This is literally just a copy from https://github.com/Ouranosinc/CanarieAPI/blob/master/Dockerfile#L1 to maintain the existing settings but I'll explicitly pin it to whatever is the latest going forward.
| # Folder inside "proxy" container to drop extra monitoring config | ||
| export CANARIE_MONITORING_EXTRA_CONF_DIR="/conf.d" | ||
|
|
||
| export PROXY_IMAGE="pavics/canarieapi:0.3.5" |
There was a problem hiding this comment.
Thanks for keeping this old behavior for backward compat.
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/1428/Result : success BIRDHOUSE_DEPLOY_BRANCH : proxy-rewrite DACCS_CONFIGS_BRANCH : master PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master PAVICS_SDI_BRANCH : master DESTROY_INFRA_ON_EXIT : true PAVICS_HOST : https://host-140-36.rdext.crim.ca PAVICS-e2e-workflow-tests Pipeline ResultsTests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/1059/NOTEBOOK TEST RESULTS |
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/1432/Result : failure BIRDHOUSE_DEPLOY_BRANCH : proxy-rewrite DACCS_CONFIGS_BRANCH : master PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master PAVICS_SDI_BRANCH : master DESTROY_INFRA_ON_EXIT : true PAVICS_HOST : https://host-140-91.rdext.crim.ca Infrastructure deployment failed. Instance has not been destroyed. @matprov |
|
@mishaschwartz |
|
@fmigneault of course. I'll do that today. What is the current state for #284 btw? Is it waiting on any more changes or is it almost ready to merge? |
|
@mishaschwartz It only needs some final validation to confirm that the monitoring is working correctly, but I did not get the chance to invest more time into it lately. |
| @@ -1,2 +1,5 @@ | |||
| docker_configuration.py | |||
| conf.extra-service.d/canarie-api.conf | |||
There was a problem hiding this comment.
@mishaschwartz Our staging env found this file became "new" file for git and broke the subsequent autodeploy !
Could you re-add this file to .gitignore?
There was a problem hiding this comment.
Completely un-related to Jenkins. I merged #308 yesterday and today I went onto our staging machine and see it still did not autodeploy that merge. So I checked the logs and found out the reason.
## Overview In order to maintain backwards compatibility, old files that are no longer present in the code should be kept in the gitignore files. This adds back one file to the relevant .gitignore file that no longer exists under `conf.extra-service.d/canarie-api.conf`. ## Changes **Non-breaking changes** Add old file to gitignore **Breaking changes** None ## Related Issue / Discussion See: #310 (comment) ## Additional Information
Overview
Canarie-api is currently deployed in the same container as the nginx reverse proxy
service meaning that it is not possible to deploy nginx without including canarie-api.
This means that it is currently not possible to run this deployment without canarie-api
or use a different monitoring application. This change fully separates the configuration
for canarie-api and nginx so that a user can choose to run nginx with or without canarie-api.
Canarie-api has been kept on the DEFAULT_CONF_DIRS list so that canarie-api is included by
default, for backwards-compatibility. In order to run nginx without canarie-api, remove the
./conf/canarie-apiline from the DEFAULT_CONF_DIRS environment variable.A user can also choose a specific version of the nginx docker image to use by specifying
the PROXY_IMAGE environment variable (default is "nginx"). Note that if canarie-api is used
(by including the
./conf/canarie-apiline in DEFAULT_CONF_DIRS), then the PROXY_IMAGEvariable will be ignored.
Changes
Non-breaking changes
Makes it possible to run the stack without canarie-api
Breaking changes
None
Related Issue / Discussion
Related to the various "pluggable component" issues. This makes canarie-api a "pluggable component".
Additional Information