Comments (8)
Proposal (to go straight into the Readme):
Version Keywords
Genesis allows you to specify some keywords for your release & stemcell
versions, and attempts to make life easier for you where it can. Here's a
run-down of the keywords, and how Genesis helps.
track
Specifying a version of track
tells Genesis to fetch the latest version information
from the Genesis Index whenever it's building the manifest. This way you will always
get the latest version.
This keyword is mostly useful for keeping stemcells up-to-date, when not using the
genesis ci
pipelines. When you use genesis ci
, there is an automated task that
monitors stemcells and propagates upgrades to them through your infrastructure, using
explicit versions.
latest
This piggyback's on BOSH's latest
version functionality. When specified, genesis
will simply pass this version on to BOSH, to let BOSH chose the latest uploaded
release/stemcell, and use that.
If the release/stemcell does not exist yet on BOSH, Genesis will contact the Genesis Index
and upload it for you, just-prior to deploying.
x.y.z
If you specify a raw version (3262.12, 241, 1.2.3), Genesis will tell BOSH to use that
version explicitly. If you specify a sha1 and URL for the release/stemcell, BOSH will
include that when it does the deploy. If you do not specify the sha1 or URL, Genesis
will contact the BOSH Director to see if it needs to upload the release using the Genesis Index to find the sha1/URL.
The Genesis Index
The Genesis Index is a service designed to make managing releases and stemcells easier.
It watches new versions of common releases and stemcells, and updates the index with
their metadata. It is only contacted under the following circumstances:
- When generating manifests for each stemcell/release that specified
track
as its version - When deploying a manifest which does not have a
sha1
orurl
attribute for a release/stemcell,
unless that release/stemcell is already present with the correct version on the BOSH director - When deploying a manifest which specifies
latest
as the version of a release/stemcell,
and that stemcell/release is not already present on the BOSH director.
There is a wide range of commonly used releases already present in the Genesis Index.
If you need additional releases, feel free to submit a GitHub issue on the genesis-index repo.
If you have private releases that you wish to manage using the Genesis Index, or cannot
contact the public Genesis Index, you can run your own internally, and specify the $GENESIS\_INDEX
environment variable to override the default index.
from genesis.
I think this covers the most common issues/scenarios. I believe bosh-init deployments will end up always contacting the index when using latest
, or if sha1/url aren't specified, since there's no director to search for a version on.
from genesis.
Looks good, with a few corrections.
Genesis does not contact BOSH to determine if the release is present or not; if no URL / SHA1 is specified for the release, Genesis will try the index to get the SHA1 / URL, even if the release has already been uploaded to the director. The BOSH CLI is what makes the final determine on uploading the release or not.
I don't believe Genesis ever contacts the index for "latest", since there is (by definition) no need to upload the release to the BOSH director. If the release isn't already on the director, the deploy will just fail.
from genesis.
It doesn't do those things now. I was approaching the doc from a "this is ideally how I would like it to work" approach.
Sent from my iPhone
On Sep 17, 2016, at 10:55 AM, James Hunt [email protected] wrote:
Looks good, with a few corrections.
Genesis does not contact BOSH to determine if the release is present or not; if no URL / SHA1 is specified for the release, Genesis will try the index to get the SHA1 / URL, even if the release has already been uploaded to the director. The BOSH CLI is what makes the final determine on uploading the release or not.
I don't believe Genesis ever contacts the index for "latest", since there is (by definition) no need to upload the release to the BOSH director. If the release isn't already on the director, the deploy will just fail.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.
from genesis.
The only issue I have with this suggestion is:
* When generating manifests for each stemcell/release that specified track as its version
In the context of a genesis managed CI pipeline the track
keyword should only take effect in the alpha environment (releases, stemcells) and beta (only for stemcells) otherwise un-vetted releases may end up in production.
from genesis.
@geofffranks ah, that makes more sense.
@bodymindarts is track
something you really want to do in a pipeline? stemcells are pretty much orthogonal to the manifest, but releases often include incompatible changes to jobs / properties that require manual intervention to accommodate.
from genesis.
@jhunt wether or not its a good idea to use track
in a pipelined context is imo another discussion. If track is a feature we are supporting we should make sure its semantics make sense in both pipelined and non-pipelined contexts. Or explicitly disallow it in pipelines if we don't want to make reasonable guarantees regarding its effects.
I would prefer supporting it in a reasonable fashion and let the end user decide if it makes sense or not to use it.
from genesis.
I agree. +1 for disallowing track
in pipelines, explicitly.
from genesis.
Related Issues (20)
- `genesis create-kit` should setup a spec directory based on genesis-community/testkit
- Check kits to ensure that they validate provided secrets HOT 1
- "genesis new ops" command fails for version 2.8.0 and 2.8.1
- Fix genesis brew bottle to correctly state and upgrade dependencies
- Rotate-secrets show handle provided secrets differently
- genesis man generates an uninitialized variable error
- Non-existent method error - incorrect error
- Stemcell version handling has issues with 'latest' HOT 4
- [ERROR] Could not connect to vault HOT 2
- Compile-kit with --force should not show errors
- The genesis version command should work even when prerequisites are missing
- Genesis repipe doesn't add `ci.yml` to the observed paths HOT 1
- The New generated Template Improvements
- Argument "s" isn't numeric in numeric eq... Vault.pm line 462 HOT 2
- proxy must be :ENV or a URI::HTTP HOT 1
- Question on using Spruce operators in ci.yml HOT 1
- Cannot retrieve release notes for prereleases
- Un-safe error message when no vault/safe setup.
- Errant warning provided when specifying alternative bosh env on genesis new
- genesis man fails of safe target is unavailable
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from genesis.