Page MenuHomeDevCentral

Decide if we keep staging repository
Open, HighPublic

Description

Currently, Salt deploys from two sources:

  • rOPS, which contains all the relevant configuration as code (pillar, states, modules)
  • rSTAGING, which contains some of the content to deploy

The idea is to be able to block versions to deploy. In practice, the state where we didn't want to deploy master branch has never been encountered.

The drawback is we copy the content of rSTAGING across all nodes. When phpBB was added as submodule to extract some configuration files, Ysul I/O suffered a lot. That makes me wonder: do we need all phpBB files to power some feature of a phpBB demo hosting?

It contains:

  • software -> should be packaged
  • web content -> the relevant node can fetch it through Git, or we can provide tarballs of content programmatically through Jenkins if any build process is needed and store it into an artifact repository/registry

Furthermore, deployment of the monolithics and static websites should evolve more like a microservice deployment. For example, PHP applications should be packaged as container images.

That let an open question: how to provide static sites content? Some is provided through rSTAGING, other are provided as "clone this repo to that directory" states.

Event Timeline

dereckson triaged this task as High priority.Sep 22 2020, 00:55
dereckson created this task.
dereckson removed a project: good-first-issue.

Some context about this staging repository:

It was intended as a source of truth to deploy applications and websites.

As a collection of submodules, it allows us to CHOOSE and DOCUMENT the version we deploy.


We can start to move software to packages. Packaging makes more sense for software, as it takes care of OS specificities and can also be offloaded to upstream OS/distro packages system.

From https://devcentral.nasqueron.org/source/staging/browse/main/software/ there are nice candidates:

  • notifications-cli-client has already been packaged, see D294
  • salt-wrapper

Furthermore:

  • phpBB/ can be pruned, it's not a good fit for T1377 and too many files to copy everywhere for nothing

That would allow us to keep only web content and see in most cases what we do:

  • versioning is wanted -> Do we have a need to match that need with alkane deploy, for example with a configuration file pinning a specific commit revision / tag / branch reference
  • versioning is not wanted -> Alkane recipe to clone the last version of the repository

At that stage, it will be easier to take a decision to keep the repository if we've identified components where this mode of deployment makes sense, or delete it if it's empty.