-
Notifications
You must be signed in to change notification settings - Fork 11
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
Implement the deployment pipeline for devnet, testnet #61
Comments
I thought a bit about this, what do you think about using portainer + webhooks portainer is an web UI in who interact with the Docker daemon. With this, we could just add to travis jobs a curl to the webhook, after pushing the new image, to trigger the update and also sent a slack notification. Also, if someone would want to try a specific version in devnet, people can use the portainer UI with access control |
Portainer has a little help for this issue, it is for managing containers. This issue is about the deployment. The deployment scenario is quite complicated, so we should have a script to handle the deployment. After that,we can setup deployment pipeline, we can use Gitlab CI (or other tools), https://docs.gitlab.com/ce/ci/quick_start/ (low priority) |
Release channels and proper versioning of docker images are already taking care of "which version" goes where. After the build process we have on travis right now, the only missing step is deploying the image. So we can use a service who wait for a webhook to redeploy. So travis, after pushing the image, can just trigger it to instantly update the service. Also travis can send at this moment a notification via slack for feedback. Different services propose that. Portainer is one of them. But there is lighter ones who only include this functionality and not the whole docker management. I just feel like it's overkill to add bash scripts + another external platform when we could just tweak what we already have Let me know what you think |
We already have good CI with Travis-CI, just need small step - deployment. So back to the core requirements:
You can try your way if it matches the requirement. If I implement the deployment, I will try to use Travis CI setup deployment pipeline. e.g:
|
So, with my suggestion, we do not need Portainer or |
Ok, let's do this. |
Yep, looking forward to see the deployment part in |
Some problems I need to resolve:
|
might need #54 first |
you can do with devnet first, it will deploy For the I think that is a good scenario. |
Yep for sure, no problem with that, it's the intended goal of those tags. Maybe by getting the list of services who use the specific image and tag. If the service is set to a specific version, it will not get updated.
|
Testing implementation on BuildOnViction/tomoscan#413 |
Done for TomoMaster and Tomoscan. |
We should implement CD (continuous deployment) for devnet, testnet. I suggest 2 steps for the implementation.
the first step, we write
deploy.sh
script with the expectations below:bash deploy.sh tomomaster
-> devnet: pulllatest
image, update container, testnet: pulltestnet
image, update containertomoscan
,node
...Then, we can run command manually to deploy the services.
The second step, we will implement in the future, we will use some CD tool like gitlab-ci, circle-ci to provide the UI, UX. The second step is much easier, we just need to connect CD Tools to trigger a run for
deploy.sh
script. So team members can track, follow the deployment status via CD Tool UI.For this issue, we just need to implement the first step.
The text was updated successfully, but these errors were encountered: