-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: untied generation from folder structures #32
Comments
Hello, thks for feedback and proposal.
Im not sure the flexibility gained by removing central aspects of the cf-ops-automation makes sense, as the layer on top of concourse/bosh might be too thin to provide value |
For your first point, it will be still the case. Directory and naming convention is a too restrictive approach, this does not permit to others to use cf-ops-automation in their own environment without pain. Even with this separation user still need, at some point, to make a link between his deployments and secrets for his site and environment. Sure, separate templating from stubs are interesting but there is a lack to those links easily, this proposal tried to find a way to do it. It will be still automated, still separate, will still have a convention. it's just moving convention to another point to not be tied to a directory structure. This is proposal and it's need to be refined to find a compromise. |
As illustrated by the usage of cf-deployment, bosh-deployment, the naming convention is quite convenient and can be adapted with symlinks. |
Introduction
Cf-ops-automation is tied to folder structure which can be a bottleneck for adoption, each teams use is own structure to handle bosh/cf deployment.
This proposal intent also to:
Untied deployment declaration
In this project each deployment must have a
deployment-dependencies.yml
which actually more describe deployment than dependencies.We can use this file as a more generic solution to describe all deployments and where to find them, this file could be at the root of repository like travis can do with
.travis.yml
or any other CI system.Proposal of the new format:
.deployments.yml
and place is in the root folderpath
to know where the stubs and templates are for the deployment.name
can be added.enable-cf-app.yml
file, instead prefer use an enum calledtype
which can have 2 possible valuesbosh
(for bosh deployment) orcf
for (for cloud foundry app)sites
key which contains list of sites available for deployment (e.g.:clouwatt
,openwatt
,sophia
...)types
key inside each site declared bysites
which contains list of type of deployment (e.g.:prod
,preprod
,dev
...)targets
could be added for this usecase.Here what can look the manifest:
Use a manifest generation script instead of folder structure in a deployment
Actually, a deployment must always follow a structure and implicit manifest style (like using spruce).
Instead of oblige ops to follow this structure a simple shell script inside the deployment could be called.
Script should always receive the same input from concourse call and always the same output but you ops will be free to construct his final manifest.
Script name should always be called
generate_manifest.sh
to be after used by a CI systems.As a side benefit by using a script let us be able to deploy in other CI than concourse.
Script input
cloudwatt
,openwatt
,sophia
,bagnolet
...prod
,preprod
,qa
,dev
...Those inputs let ops be able to generate manifest by these identifiers but he is not oblige to use it.
Input will be given by
sites
andtypes
keys from.deployments.yml
file by concourse.Script ouput
The output should always return one or many absolute path to manifests to deploy for a deployment.
If there is more than one each path will be separate by a new line:
The text was updated successfully, but these errors were encountered: