ai-cfia / howard

The Howard project, named after "The Godfather of Clouds" Luke Howard, orchestrates the Kubernetes-based cloud infrastructure for the Canadian Food Inspection Agency's AI lab, managing applications like Nachet, Finesse, and Louis. It prioritizes robustness, security and efficiency
https://ai-cfia.github.io/howard/
MIT License
3 stars 0 forks source link

As a developer, I want to manage the versioning of my deployment/application. #20

Open ThomasCardin opened 10 months ago

ThomasCardin commented 10 months ago

Executive summary

We want to manage the different versions of our applications and test them progressively (for example, a frontend developer wants to test the version of the backend that is in the testing phase on a PR). We need to have a deployment for each version.

Context

If a user creates a PR, an automatic deployment should be carried out with the correct version (via the Dockerfile, based on the specific file of each directory. For example, for the frontend, it should refer to the package.json). Afterward, the URL of this deployment should be displayed in the pull request (for example, https://v1-0-0.nachet.ninebasetwo.xyz/ for the frontend and https://v1-0-0.nachet.ninebasetwo.xyz/api for the backend). Subsequently, a developer could test https://"x".nachet.ninebasetwo.xyz at any time.

How to do it

Summary

Regarding the Dockerfiles of the projects, ARGs need to be retained at build time (for example, docker build...).

Steps:

EDIT:

After some research, @SonOfLope found this workflow. This could save us a lot of time. If the solution works, some of the earlier steps won't need to be done.

rngadam commented 10 months ago

review ADR: https://github.com/ai-cfia/dev-rel-docs/blob/main/adr/006-database-change-management.md

also : https://www.ietf.org/rfc/rfc1034.txt#:~:text=They%20must%20start%20with%20a,be%2063%20characters%20or%20less.&text=information%2C%20which%20may%20be%20empty.)

They must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen. There are also some restrictions on the length. Labels must be 63 characters or less. information, which may be empty.

I suggest substituting . for - so v2.3.30 becomes v2-3-30

SonOfLope commented 7 months ago

https://github.com/marketplace/actions/preview-pull-requests-in-kubernetes