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.