Skip to content

cub filter create

cub filter create

Create a new filter or bulk create filters

Synopsis

Create a new filter or bulk create multiple filters by cloning existing ones.

SINGLE FILTER CREATION:

Create a new filter to define entity filter expressions.

From Types:

  • Unit: Filter units
  • Space: Filter spaces
  • Trigger: Filter triggers
  • Worker: Filter workers
  • Target: Filter targets

Examples:

  # Create a filter for Units with specific labels
  cub filter create --space my-space --json unit-filter Unit --where-field "Labels.Environment = 'production'"

  # Create a filter for Units with specific resource type
  cub filter create --space my-space --json deployment-filter Unit --resource-type "apps/v1/Deployment"

  # Create a filter for Units with data filters
  cub filter create --space my-space --json replicas-filter Unit --where-data "spec.replicas > 2"

  # Create a filter for Spaces with specific criteria
  cub filter create --space my-space --json dev-spaces Space --where-field "Labels.Environment = 'dev'"

  # Create a filter with from-space for filtering within a specific space
  cub filter create --space my-space --json cross-space-filter Unit --from-space other-space --where-field "DisplayName LIKE 'app-%'"

BULK FILTER CREATION:

When no positional arguments are provided, bulk create mode is activated. This mode clones existing filters based on filters and creates multiple new filters with optional modifications.

Bulk Create Examples:

  # Clone all filters matching a pattern with name prefixes
  cub filter create --where "From = 'Unit'" --name-prefix dev-,staging- --dest-space dev-space

  # Clone specific filters to multiple spaces
  cub filter create --filter-entity my-filter --dest-space dev-space,staging-space

  # Clone filters using a where expression for destination spaces
  cub filter create --where "From = 'Space'" --where-space "Labels.Environment IN ('dev', 'staging')"

  # Clone filters with modifications via JSON patch
  echo '{"From": "Unit"}' | cub filter create --where "From = 'Space'" --name-prefix unit- --from-stdin
cub filter create [<slug> <from> [--where-field <where>] [--where-data <where-data>] [--resource-type <resource-type>] [--from-space <from-space>]] [flags]

Options

      --allow-exists             Allow creation of resources that already exist
      --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
      --dest-space strings       destination spaces for bulk create (can be repeated or comma-separated)
      --filename string          Read the ConfigHub entity JSON from file, URL (https://), or stdin (-); 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"
      --filter-entity strings    target specific filters by slug or UUID for bulk create (can be repeated or comma-separated)
      --filter-space string      filter entity containing WHERE expression to select destination spaces for bulk create (slug or UUID)
      --from-space string        space to filter within (slug or UUID, only relevant for spaced entity types)
      --from-stdin               Read the ConfigHub entity JSON (e.g., retrieved with cub <entity> get --quiet --json) from stdin; merged with command arguments on create, and merged with command arguments and existing entity on update
  -h, --help                     help for create
      --jq string                jq expression, suppressing default output
      --json                     JSON output, suppressing default output
      --label strings            labels in key=value format; can separate by commas and/or use multiple instances of the flag
      --name-pattern string      a pattern string for name generation of clones, prefix 'template:' to use a Go template with .SourceEntitySlug to access the original Filter and .Labels to access variant labels, example: 'template:{{.SourceEntitySlug}}-{{.Labels.env}}'
      --name-prefix strings      name prefixes for bulk create (can be repeated or comma-separated)
      --quiet                    No default output.
      --resource-type string     resource type to match (e.g., apps/v1/Deployment, valid only for Units)
      --variant-labels strings   labels for bulk create in the format of key1=value1|value2,key2=value1|value2|value3
      --verbose                  Detailed output, additive with default output
      --where string             Filter expression using SQL-inspired syntax. Supports conjunctions with AND. String operators: =, !=, <, >, <=, >=, LIKE, ILIKE, ~~, !~~, ~, ~*, !~, !~*. Pattern matching with LIKE/ILIKE uses % and _ wildcards. Regex operators (~, ~*, !~, !~*) support POSIX regular expressions. Examples: "Slug LIKE 'app-%'", "DisplayName ILIKE '%backend%'", "Slug ~ '^[a-z]+-[0-9]+$'"
      --where-data string        where filter expression for configuration data (valid only for Units)
      --where-field string       where expression for the filter entity
      --where-space string       where expression to select destination spaces for bulk create
      --yaml                     YAML output, suppressing default output
      --yq string                yq expression, suppressing default output

Options inherited from parent commands

      --context string   The context to use for this command
      --debug            Debug output
      --space string     space ID to perform command on

SEE ALSO