Transition GitLab pages to object storage instead of NFS
First part of the refactoring: &1316 (closed)
- Add support for object storage as a backend in gitlab-pages
- Add ability to create a .zip file during the pages deploy process
- Add ability to deploy to object storage during the pages deploy process
- Create a migration strategy to move sites from file storage to object storage
Note: Don't forget to use project name independent URLs for object storage(see hashed storage). discussion
Possible ways to implement
Serve directly from zip artifacts
See gitlab-pages!136 (closed) for and idea
PoC serving from object storage using pre-signed URLs gitlab-pages!299 (closed)
Download zip artifacts by pages and use current disc serving
Build CDN between object storage and pages
Open questions
will that allow as to get rid of jailing?
Designs
- Show closed items
Blocks
- gitlab-pages #137Backlog
Relates to
- #28784Next 1-3 releases2
- gitlab-pages #196Backlog20
- #21951Backlog
- #228783Next 1-3 releases1
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- Vladimir Shushlin mentioned in epic &1316 (closed)
mentioned in epic &1316 (closed)
- Vladimir Shushlin added to epic &1316 (closed)
added to epic &1316 (closed)
- Vladimir Shushlin marked this issue as related to #25411 (closed)
marked this issue as related to #25411 (closed)
- Vladimir Shushlin added Category:Pages devopsrelease [DEPRECATED] + 2 deleted labels
added Category:Pages devopsrelease [DEPRECATED] + 2 deleted labels
- Vladimir Shushlin marked this issue as related to #28784 (closed)
marked this issue as related to #28784 (closed)
- Vladimir Shushlin changed the description
Compare with previous version changed the description
- Author Developer
I extracted this issue from &1316 (closed) mostly to link
blocked
issues here. 2 Collapse replies - Contributor
this is super helpful @vshushlin - should we have it on the cicdactive board?
This is really great, thanks @vshushlin!
@jmeshell, good call, that might be nice.
- Author Developer
Is cicdactive meant to indicate something we start to work on and finish with a milestone or 2?
This issue is more of an epic and we'll break it down to a few smaller actionable once.
- Vladimir Shushlin marked this issue as related to gitlab-pages#137 (closed)
marked this issue as related to gitlab-pages#137 (closed)
- Jackie Porter changed milestone to %Backlog
changed milestone to %Backlog
- 🤖 GitLab Bot 🤖 added [deprecated] Accepting merge requests + 1 deleted label
added [deprecated] Accepting merge requests + 1 deleted label
- Jaime Martinez mentioned in issue gitlab-pages#355 (closed)
mentioned in issue gitlab-pages#355 (closed)
- Jaime Martinez marked this issue as related to gitlab-pages#355 (closed)
marked this issue as related to gitlab-pages#355 (closed)
- Vladimir Shushlin marked this issue as related to gitlab-pages#196 (closed)
marked this issue as related to gitlab-pages#196 (closed)
- Author Developer
gitlab-pages!136 (diffs) has an attempt to serve from zip artifacts.
cc @jaime it might help you with your PoC
1 - Author Developer
@grzesiek can you post your idea about using CDN between object storage and Pages?
- Vladimir Shushlin changed the description
Compare with previous version changed the description
- Author Developer
@ayufan do we have any reason for jailing except for preventing pages from serving random files from the file system?
One of the approaches we're discussing is to download zip artifacts and cache them on the pages side. We very much want to get rid of jailing, but in that case probably need to replace it with something.
Collapse replies - Maintainer
do we have any reason for jailing except for preventing pages from serving random files from the file system?
This is the only reason. I hope that we get rid of
chrooting
magic, once we switch to.zip
. 1 1 1
- Author Developer
Collapse replies - Author Developer
cc @nick.thomas
- Maintainer
I had PoC that was able to serve directly from
.zip
(regardless if it is local or remote stored). It required some caching approaches to cache metadata info, but maybe this is the best first step to understand how performant it could be?We know that this is not the most performant, but maybe this is a good starting point. Maybe if pages would be in front of some CDN this would be simply enough (as for performance goes?)
The idea behind using
.zip
is that we can then effectively implementGitLab Pages: Review Apps
basically for every MR, as we serve directly from archive, and we do not need any storage to unpack.Edited by Kamil Trzciński 1