Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

User Commands

This page documents the user-facing commands for managing catalog repositories. These commands allow regular users to import, manage, and synchronize their own catalog repositories.

Currently management of catalog repositories is only possible with the CLI.

Importing a Catalog Repository

To add a new catalog repository and automatically synchronize its contents with Fuzzball, use the import command:

$ fuzzball workflow catalog source import <NAME> <URI> <BRANCH> [flags]

Arguments:

  • <NAME>: A descriptive name for the catalog repository
  • <URI>: The Git repository URI (HTTPS or SSH)
  • <BRANCH>: The branch to synchronize

Flags:

  • --owner-kind, -o: The owner type for the catalog repository (default: group)
    • Options: group, organization
  • --access-token, -t: Access token for private git repositories (e.g. GitHub PAT)

Example - Public Repository:

$ fuzzball workflow catalog source import \
    "Community Catalog" \
    "https://github.com/example/fuzzball-catalog" \
    main

Example - Private Repository:

$ fuzzball workflow catalog source import \
    "Private Catalog" \
    "https://github.com/example/private-catalog" \
    main \
    --access-token "xxxxxxxxxxxx"

Listing Catalog Repositories

To view all configured catalog repositories:

$ fuzzball workflow catalog source list

Example Output:

NAME                 | ID                                   | OWNER    | URI                                            | BRANCH | LASTSYNCEDSHA
ciq-fuzzball-catalog | 11111111-1111-1111-1111-111111111111 | PROVIDER | https://github.com/ctrliq/ciq-fuzzball-catalog | v3.0   | fb0483082c954d22afac9df16427a18eee8362fe
Community Catalog    | 1d9c69b7-d394-4286-9c19-05dac07919b4 | GROUP    | https://github.com/example/catalog             | main   | ccb981ae3beaafc269a854615cd8976a0ec09e03

This displays the repository ID, name, owner kind, URI, branch, and last synchronized commit SHA.

Getting Repository Details

To view detailed information about a specific catalog repository:

$ fuzzball workflow catalog source get <SOURCE>

Example:

$ fuzzball workflow catalog source get -o json 1d9c69b7-d394-4286-9c19-05dac07919b4

Example output:

{
  "id": "1d9c69b7-d394-4286-9c19-05dac07919b4",
  "name": "Community Catalog",
  "uri": "https://github.com/example/catalog",
  "branch": "main",
  "last_synced_sha": "ccb981ae3beaafc269a854615cd8976a0ec09e03",
  "create_time": {
    "seconds": 1768407234,
    "nanos": 357487000
  },
  "update_time": {
    "seconds": 1768407234,
    "nanos": 602545000
  }
}

Reloading a Catalog Repository

To synchronize a catalog repository and update its applications:

$ fuzzball workflow catalog source reload <SOURCE>

Example:

$ fuzzball workflow catalog source reload 1d9c69b7-d394-4286-9c19-05dac07919b4

This fetches the latest commit from the repository and updates all applications, creating new ones or updating existing ones as needed.

Removing a Catalog Repository

To remove a catalog repository:

$ fuzzball workflow catalog source remove <SOURCE>

Example:

$ fuzzball workflow catalog source remove 1d9c69b7-d394-4286-9c19-05dac07919b4
Removing a catalog source removes its templates from the Fuzzball workflow catalog. The underlying git repository at its origin is never modified, so the source can be restored by re-importing it.

Advanced: Adding Without Synchronization

In most cases, you should use the import command which adds and synchronizes in one step. However, you can also add a repository without immediately synchronizing it:

$ fuzzball workflow catalog source add <NAME> <URI> <BRANCH> [flags]

The flags are the same as for the import command. After adding, you’ll need to manually run reload to synchronize the applications.

$ fuzzball workflow catalog source add \
  "Development Catalog" \
  "https://github.com/example/dev-catalog" \
  "develop"

$ fuzzball workflow catalog source reload <SOURCE>