Command: add references
On this page
Usage
ocm add references [<options>] [<target>] {<referencefile> | <var>=<value>}
Options
--addenv access environment for templating
--component string component name
--dry-run evaluate and print reference specifications
--extra <name>=<value> reference extra identity (default [])
-F, --file string target file/directory (default "component-archive")
-h, --help help for references
--label <name>=<YAML> reference label (leading * indicates signature relevant, optional version separated by @)
--name string reference name
-O, --output string output file for dry-run
--reference YAML reference meta data (yaml)
-s, --settings stringArray settings file with variable settings (yaml)
--templater string templater to use (go, none, spiff, subst) (default "subst")
--version string reference version
Description
Add aggregation information specified in a reference file to a component version. So far only component archives are supported as target.
This command accepts reference specification files describing the references to add to a component version. Elements must follow the reference meta data description scheme of the component descriptor.
The description file might contain:
- a single reference
- a list of references under the key
references
- a list of yaml documents with a single reference or reference list
It is possible to describe a single reference via command line options.
The meta data of this element is described by the argument of option –reference
,
which must be a YAML or JSON string.
Alternatively, the name and version can be specified with the
options –name
and –version
. With the option –extra
it is possible to add extra identity attributes. Explicitly specified options
override values specified by the –reference
option.
(Note: Go templates are not supported for YAML-based option values. Besides
this restriction, the finally composed element description is still processd
by the selected templater.)
The component name can be specified with the option –component
.
Therefore, basic references not requiring any additional labels or extra
identities can just be specified by those simple value options without the need
for the YAML option.
All yaml/json defined resources can be templated.
Variables are specified as regular arguments following the syntax <name>=<value>
.
Additionally settings can be specified by a yaml file using the –settings
option. With the option –addenv
environment variables are added to the binding.
Values are overwritten in the order environment, settings file, command line settings.
Note: Variable names are case-sensitive.
Example:
<command> <options> -- MY_VAL=test <args>
There are several templaters that can be selected by the –templater
option:
go
go templating supports complex values.key: subkey: "abc {{.MY_VAL}}"
none
do not do any substitution.spiff
spiff templating.It supports complex values. the settings are accessible using the binding
values
.key: subkey: "abc (( values.MY_VAL ))"
subst
simple value substitution with thedrone/envsubst
templater.It supports string values, only. Complex settings will be json encoded.
key: subkey: "abc ${MY_VAL}"
All yaml/json defined resources can be templated.
Variables are specified as regular arguments following the syntax <name>=<value>
.
Additionally settings can be specified by a yaml file using the –settings
option. With the option –addenv
environment variables are added to the binding.
Values are overwritten in the order environment, settings file, command line settings.
Note: Variable names are case-sensitive.
Example:
<command> <options> -- MY_VAL=test <args>
There are several templaters that can be selected by the –templater
option:
go
go templating supports complex values.key: subkey: "abc {{.MY_VAL}}"
none
do not do any substitution.spiff
spiff templating.It supports complex values. the settings are accessible using the binding
values
.key: subkey: "abc (( values.MY_VAL ))"
subst
simple value substitution with thedrone/envsubst
templater.It supports string values, only. Complex settings will be json encoded.
key: subkey: "abc ${MY_VAL}"
Examples
Add a reference directly by options
$ ocm add references --file path/to/ca --name myref --component github.com/my/component --version ${VERSION}
Add a reference by a description file:
*references.yaml*:
---
name: myref
component: github.com/my/component
version: ${VERSION]
$ ocm add references path/to/ca references.yaml VERSION=1.0.0
See Also
- ocm add — Add resources or sources to a component archive