Skip to content

Latest commit

 

History

History
197 lines (137 loc) · 6.19 KB

ocm_add_references.md

File metadata and controls

197 lines (137 loc) · 6.19 KB

ocm add references — Add Aggregation Information To A Component Version

Synopsis

ocm add references [<options>] [<target>] {<referencefile> | <var>=<value>}

Aliases

references, reference, refs

Options

      --addenv                 access environment for templating
      --dry-run                evaluate and print reference specifications
  -F, --file string            target file/directory (default "component-archive")
  -h, --help                   help for references
  -O, --output string          output file for dry-run
  -P, --preserve-signature     preserve existing signatures
  -R, --replace                replace existing elements
  -s, --settings stringArray   settings file with variable settings (yaml)
      --templater string       templater to use (go, none, spiff, subst) (default "subst")

Reference Meta Data Options

      --component string       component name
      --extra <name>=<value>   reference extra identity (default [])
      --label <name>=<YAML>    reference label (leading * indicates signature relevant, optional version separated by @)
      --name string            reference name
      --reference YAML         reference meta data (yaml)
      --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 processed by the selected template engine.)

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 the drone/envsubst templater.

    It supports string values, only. Complex settings will be json encoded.

      key:
        subkey: "abc ${MY_VAL}"
    

The --replace option allows users to specify whether adding an element with the same name and extra identity but different version as an existing element, append (false) or replace (true) the existing element.

The --preserve-signature option prohibits changes of signature relevant elements.

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 the drone/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

Parents

  • ocm add — Add elements to a component repository or component version
  • ocm — Open Component Model command line client