-
Epic
-
Resolution: Done
-
Normal
-
None
-
None
-
None
-
preview-in-ephem
-
False
-
-
False
-
Unset
-
Done
-
0% To Do, 0% In Progress, 100% Done
-
-
We need to improve the support of stable/preview builds for frontends in ephemeral environments. This will require changes to our app-interface SAAS files, documentation, and bonfire.
Original points as summed up by bsquizza@redhat.com
High level, we need to start thinking of the "stable" frontend and the "preview" frontend like they are 2 different apps in 2 different repos. (except ... they are not. They happen to be in the same repo, under 2 different branches) * get 'stable' added to this list: https://github.com/app-sre/qontract-schemas/blob/faf738a8213900385fd005cd53682039618a2f99/schemas/app-sre/saas-file-target-1.yml#L40
- once that is done, stage stable deploy targets can now have 'stable' in the git ref instead of stuff like this: https://gitlab.cee.redhat.com/service/app-interface/-/blob/master/data/services/insights/frontend-base/deploy.yml#L77
- make sure that the 'stable' branch and the 'main' branch of each FE repo has a separate jenkins job defined in their build.yml
- once that is done, set up an upstream config on the stable-stable and stage-preview deploy targets, kind of like this: https://gitlab.cee.redhat.com/service/app-interface/-/blob/master/data/services/insights/ingress/deploy.yml#L46-49 – the stage-stable deploy target should watch the 'stable' jenkins job. The stage-preview deploy target should watch the 'preview' jenkins job.
- each FE should be split into 2 different components: <frontend>-preview and <frontend>-stable – so instead of having 1 frontend resourceTemplate w/ a deploy target for stage-stable, prod-stable, stage-preview, and prod-preview like you do now (https://gitlab.cee.redhat.com/service/app-interface/-/blob/master/data/services/insights/frontend-base/deploy.yml#L63-109) you will have 2 resourceTemplates:
- <frontend>-preview has a deploy target for: stage, prod, ephemeral
- <frontend>-stable has a deploy target for: stage, prod, ephemeral
- Add logic to bonfire to allow users to select whether they want 'stable' frontends or 'preview' frontends or BOTH in your namespace at deploy time (by default, it will pick 'preview'). Bonfire will use the naming convention in app-interface (-stable and -preview) to pick which components it is going to deploy.
- if an FE does not have a separate 'stable' or 'preview'... bonfire will always deploy just the 1 it has.
- separate deploy config also needs to exist for chrome-service-stable and chrome-service-preview ... (correct me on this if wrong?)