Skip to content

cub invocation update

cub invocation update

Update an invocation or multiple invocations

Synopsis

Update an invocation or multiple invocations using bulk operations.

Single invocation update:

Function arguments can be provided as positional arguments or as named arguments using --argumentname=value syntax. Once a named argument is used, all subsequent arguments must be named. Use "--" to separate command flags from function arguments when using named function arguments.

Example with named arguments:

  cub invocation update --space my-space my-invocation Kubernetes/YAML -- set-annotation --annotation-key=cloned --annotation-value=true

An Invocation can call several functions, which are executed in the order they are listed. The positional form replaces the list with a single function; to set a list of several, supply FunctionInvocations with --from-stdin or --filename and omit the function positional arguments:

  echo '{"FunctionInvocations": [
           {"FunctionName": "set-default-names"},
           {"FunctionName": "set-annotation", "Arguments": [{"Value": "cloned"}, {"Value": "true"}]}
         ]}' | cub invocation update --space my-space --from-stdin my-invocation Kubernetes/YAML

Bulk update with --patch:

Update multiple invocations at once based on search criteria. Requires --patch flag with no positional arguments.

Examples:

  # Point the invocations that run an external function at another worker serving it
  cub invocation update --space my-space --patch --where "FunctionInvocations.*.FunctionName = 'vet-team-policy'" --worker new-worker

  # Repoint every invocation still on a deprecated function to its replacement
  echo '{"FunctionInvocations": [{"FunctionName": "vet-cel"}]}' | cub invocation update --patch --where "FunctionInvocations.*.FunctionName = 'cel-validate'" --from-stdin

  # Update specific invocations by slug
  cub invocation update --space my-space --patch --invocation my-invocation,another-invocation --worker new-worker
cub invocation update [<slug or id>] [<toolchain type> [<function> [<arg1> ...]]] [flags]

Options

      --annotation strings            annotations in key=value format; can separate by commas and/or use multiple instances of the flag
      --delete-gate strings           delete gates in key[=true] format; can separate by commas and/or use multiple instances of the flag
      --display-name string           friendly name for the entity, which need not be unique or URL-safe; an entity without one is shown by its slug
      --dry-run                       report what the command would write, and write nothing
      --filename string               Read the ConfigHub entity's fields, as YAML or JSON, from file, URL (https://), or stdin (-), as --from-stdin does; mutually exclusive with --from-stdin
      --filter string                 Filter entity to apply to the list. Specify as 'space/filter' for cross-space filters or just 'filter' for current space. Supports both slugs and UUIDs. The filter will be combined with any --where clause using AND logic. Examples: "production-filters/security-check", "my-filter-uuid", "validation-rules"
      --from-backing-units            patch each Invocation selected with what its backing Unit holds that it has not taken yet; the patch the other flags make is applied after it
      --from-stdin                    Read the ConfigHub entity's fields, as YAML or JSON, from stdin; merged with command arguments on create, and merged with command arguments and existing entity on update. A field the entity does not have, or one only the server sets, is refused; cub <entity> explain lists the fields
      --function stringArray          function the invocation runs, as <function> [<argument>...], written as on the cub function do command line (repeatable, in the order they run). It takes the place of the function given as arguments, for an invocation of more than one function
  -h, --help                          help for update
      --hidden-reason string          hide the entity, giving the reason as a name such as Archived: lists and bulk operations leave it out unless --include-hidden names the reason (use '-' to clear, which shows the entity again)
      --include-hidden string[="*"]   Also select hidden entities, to list or to act on: those hidden for the given HiddenReasons, comma-separated, as in --include-hidden=BackingUnit, or for any reason when given no value or "*". ConfigHub/YAML Units, which hold the configuration of other entities, are hidden with the reason BackingUnit. A --where naming entities by Slug or ID selects them whether hidden or not
      --invocation strings            target specific invocations by slug or UUID for bulk patch (can be repeated or comma-separated)
      --label strings                 labels in key=value format; can separate by commas and/or use multiple instances of the flag
  -o, --output string                 Output format. One of: json, yaml, name, wide, mutations, jq=<expr>, yq=<expr>, custom-columns=<spec>
      --parameter stringArray         replace the declared parameters with the ones given, each as name[:datatype[:required]] (datatype defaults to string, required defaults to true; can be repeated). Reference declared parameters from templated argument values via {{ .Params.<name> }}.
      --patch                         use patch API for individual or bulk operations
      --permission strings            permission in format Action:UserIDOrUsername, Action:group:GroupSlugOrID or Action:serviceaccount:ServiceAccountSlugOrID to add, or the same prefixed with - to remove (e.g., Manage:user@example.com, View:group:platform, View:serviceaccount:deploy-bot, -View:user@example.com, can be repeated)
      --quiet                         No default output.
      --replace                       Replace entity instead of merging when using --from-stdin or --filename
      --set stringArray               set a field of the Invocation by its path, as <path>=<value> (repeatable). A path is field names separated by dots; a list element is addressed as ?<key>=<value> or by position, as in Stages.?Name=prod.WhereSpace, and is added if it is not there. A list of plain values separates them with ';'; an object or a list of objects is given as YAML or JSON. A reference is given as it is elsewhere, by slug, <space>/<slug> or ID. With --patch, only a path with no list element in it
      --unset stringArray             clear a field of the Invocation by its path, or remove the list element the path ends at (repeatable)
      --verbose                       Detailed output, additive with default output
      --where string                  Filter expression using SQL-inspired syntax. Supports conjunctions with AND. String operators: =, !=, <, >, <=, >=, LIKE, NOT LIKE, ILIKE, ~~, !~~, ~, ~*, !~, !~*. Pattern matching with LIKE/ILIKE uses % and _ wildcards. Regex operators (~, ~*, !~, !~*) support POSIX regular expressions. A related entity is referenced by prefix, as in "UpstreamUnit.Slug = 'base'"; when the reference names a list, a * segment matches any element, as in "FromLink.*.Slug = 'upgrade-app'". Examples: "Slug LIKE 'app-%'", "DisplayName ILIKE '%backend%'", "Slug ~ '^[a-z]+-[0-9]+$'"
      --with-backing-units            give each Invocation the bulk operation writes a backing Unit if it has none: a ConfigHub/YAML Unit holding its configuration, kept in step with it
      --worker string                 worker to execute the invocation function

Options inherited from parent commands

      --component string   the Component of --variant, when that names the variant alone; --variant <component>/<variant> says the same in one flag
      --context string     The context to use for this command
      --debug              Debug output
      --space string       space to operate in, by slug or UUID. Omitted, a list or bulk operation spans the organization and a single entity is named as <space>/<slug>; "*" means the same as omitting it
      --variant string     variant to operate in, as <component>/<variant>, or as <variant> with --component: the space naming that Component whose Variant label is <variant>. The same scope as --space, named by what it is rather than by the space's slug; the two cannot be combined

SEE ALSO