You have a lot of control over which configset version to use.
Project Configsets: Standard Gemfile
gem "awslogs", "0.1.0", git: "email@example.com:boltopspro/awslogs" gem "ruby", ">= 0.5.5", "< 0.8.8", git: "firstname.lastname@example.org:boltopspro/ruby" gem "ssm", "~> 0.2", git: "email@example.com:boltopspro/ssm" # pessimistic version
The pessimistic version
ssm ~> 0.2 example means configset version 0.2 or greater will be used. However, the next major version bump will not be used, IE: 1.0.0. More info about the pessimistic operation here.
The configset version is locked by bundler and your Gemfile. In the configset declaration, you do not have to specify version numbers. Example:
configset "awslogs", resource: "Instance" configset "ruby", resource: "Instance" configset "ssm", resource: "Instance"
Git repository sources support additional options:
ref. Only one of these options are allowed to be used. The default is
branch: "master". Examples:
gem "awslogs", git: "firstname.lastname@example.org:boltopspro/awslogs", branch: "master" gem "cfn-hup", git: "email@example.com:boltopspro/cfn-hup", ref: "7212d17" gem "httpd", git: "firstname.lastname@example.org:boltopspro/httpd", tag: "v0.1.0"
Blueprint Configsets: Materialized
Blueprints can use configsets. Blueprints configure configsets their
config/configsets.rb file. Example:
configset "ruby", resource: "Instance"
When the configset is not declared anywhere else in the Lookup Locations, Lono materializes and uses the latest version. If a version is has be specified and is in a Lookup location with higher precedence, then that version will be used.
Blueprint Configsets: Advanced Locking
It is also possible to specify the version in the blueprint configset declaration. Example:
configset "ruby", "~> 0.1", resource: "Instance"
Lono will then materialize the specific version.
Note: You can still override the version to use by specifying their own version in their project’s Gemfile. You can also create a configset with the same name in a Blueprint Configsets Search Locations with higher precedence.
The bundler Gemfile options are supported in the
configset method. Examples:
configset "ruby", resource: "Instance", branch: "master" configset "cfn-hup", resource: "Instance", ref: "7212d17" configset "toolset", resource: "Instance", tag: "v0.1.0"
Configsets can depend on other configsets. You can specify versions in the
depends_on method also.
depends_on "amazon-linux-extras", "0.1.0"
Note: Once again, you can still override the version with your own project Gemfile or defining configset with the same name in a Blueprint Configsets Search Locations with higher precedence. Ultimately, this means you have control over which to version to use.
Pro tip: Use the <- and -> arrow keys to move back and forward.