UCS Microservice Builder CLI#

The UCS Microservice Builder CLI tool can be used to create and build microservices. It can be used to list and view information about available microservices and perform a few NGC repository operations.

The tool is named ucf_ms_builder_cli.

Basic Operations#

Viewing Help#

$ ucf_ms_builder_cli -h
usage: ucf_ms_builder_cli [-h] [-v] [-va]  ...

positional arguments:

    service           Perform actions on a microservice
    registry          Perform actions on registry
    component         Perform actions on components

optional arguments:
  -h, --help          show this help message and exit
  -v, --version       Print MS Builder Version
  -va, --version-all  Print all versions

Checking the Tool Version#

$ ucf_ms_builder_cli -v
Version:
        MS Builder: v2.5.0
$ ucf_ms_builder_cli --version-all
Versions:
        MS Builder: v2.5.0
        UCF MS Spec: v2.5.0

Service Command service#

Service command service can be used to create and build microservices and list and view information about available microservices.

$ ucf_ms_builder_cli service [-h]  ...

positional arguments:

    create    Create a microservice scaffolding
    clone     Clone an existing microservice to a new version in prod
    build     Build a microservice
    validate  Validate a microservice
    list      List microservices
    versions  List versions of a microservice
    remove    Remove microservice from repo
    info      Info about a microservice
    sync      Sync a microservice from NGC to cache

optional arguments:
  -h, --help  show this help message and exit

Create Microservice Scaffolding#

ucf_ms_builder_cli service create [-h] [-d DESCRIPTION] [-o OUTPUT_DIR] -n NAME -i
                                     {container-image,container-config,helm-chart} [-c CHART]

optional arguments:
  -h, --help            show this help message and exit
  -d DESCRIPTION, --description DESCRIPTION
                        description of microservice
  -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                        output directory to place the created microservice

required arguments:
  -n NAME, --name NAME  name of the microservice
  -i {container-image,container-config,helm-chart}, --input {container-image,container-config,helm-chart}
                        Input:
                        container image
                        container builder config
                        helm chart
  -c CHART, --chart CHART
                        Chart path when using prebuilt helm chart (type=3)

e.g.

$ ucf_ms_builder_cli service create -n myservice -i container-image

Building a Microservice#

ucf_ms_builder_cli service build [-h] -d DIRECTORY [-t TARGET] [--push] [--skip-tests] [--skip-compliance] [-f]
                                 [--keep-app-specs]

optional arguments:
  -h, --help            show this help message and exit
  --push                Push service to staging repo if it build is successful
  --skip-tests          Skip building of tests
  --skip-compliance     Skip compliance checks
  -f, --force-cleanup   Output directory contents will be cleaned up without user confirmation
  --keep-app-specs      Create app specs folder in user directory

required arguments:
  -d DIRECTORY, --directory DIRECTORY
                        path to microservice directory
  -t TARGET, --target TARGET
                        Target file path when using container builder config (type=2) (required by container builder)

e.g.

$ ucf_ms_builder_cli service build -d myservice/

List Available Microservices#

ucf_ms_builder_cli service list [-h] [-r REPO_NAME]

optional arguments:
  -h, --help            show this help message and exit
  -r REPO_NAME, --repo-name REPO_NAME
                        Select an repository name

e.g.

$ ucf_ms_builder_cli service list

List Available Microservice Versions#

ucf_ms_builder_cli service versions [-h] -n NAME [-r REPO_NAME]

optional arguments:
  -h, --help            show this help message and exit
  -n NAME, --name NAME  Name of the microservice
  -r REPO_NAME, --repo-name REPO_NAME
                        Select an repository name

e.g.

$ ucf_ms_builder_cli service versions -n ucf.svc.myservice

View Microservice Information#

ucf_ms_builder_cli service info [-h] [-v MS-VERSION] [--show-compliance-details] [--show-license] [--show-docs]
                                 [--show-changelog] -n NAME

optional arguments:
  -h, --help            show this help message and exit
  -v MS-VERSION, --version MS-VERSION
                        Version of the microservice to get info for
  --show-compliance-details
                        Show compliance check details for the microservice
  --show-license        Show license text for the microservice
  --show-docs           Show detailed documentation for the microservice
  --show-changelog      Show changelog for the microservice

required arguments:
  -n NAME, --name NAME  name of the ms

e.g.

$ ucf_ms_builder_cli service info -n ucf.svc.myservice -v 0.0.1

Synchronize a Microservice#

ucf_ms_builder_cli service sync [-h] -n NAME [-v MS-VERSION]

optional arguments:
  -h, --help            show this help message and exit
  -v MS-VERSION, --version MS-VERSION
                        Version of the microservice to sync (default: latest)

required arguments:
  -n NAME, --name NAME  Name of the microservice to sync

e.g.

$ ucf_ms_builder_cli service sync -n ucf.svc.myservice -v 0.0.1

Registry Command registry#

The Registry command registry can be used to perform various registry operations such as set the NGC API Key, sync all microservices from a NGC repository, cache management.

$ ucf_ms_builder_cli registry -h
usage: ucf_ms_builder_cli registry [-h]  ...

positional arguments:

    repo      Registry repository operations
    cache     Registry cache operations

optional arguments:
  -h, --help  show this help message and exit

Set NGC API Key#

ucf_ms_builder_cli registry repo set-api-key [-h] -a API_KEY

optional arguments:
  -h, --help            show this help message and exit

required arguments:
  -a API_KEY, --api-key API_KEY
                        Select a API key

e.g.

ucf_ms_builder_cli registry repo set-api-key -a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

List Available Repositories#

ucf_ms_builder_cli registry repo list [-h]

optional arguments:
  -h, --help  show this help message and exit

e.g.

ucf_ms_builder_cli registry repo list

View Information for a Repository#

ucf_ms_builder_cli registry repo info [-h] -n REPO_NAME

optional arguments:
  -h, --help            show this help message and exit

required arguments:
  -n REPO_NAME, --repo-name REPO_NAME
                        Select an repository name

e.g.

ucf_ms_builder_cli registry repo info -n public

Synchronize All Microservices in a Repository#

ucf_ms_builder_cli registry repo sync [-h] -n REPO_NAME [-a]

optional arguments:
  -h, --help            show this help message and exit
  -a, --all             Sync all versions of a microservice

required arguments:
  -n REPO_NAME, --repo-name REPO_NAME
                        Select an repository name

e.g.

ucf_ms_builder_cli registry repo sync -n public

Clear Local Repository#

ucf_ms_builder_cli registry repo clear [-h]

optional arguments:
  -h, --help  show this help message and exit

e.g.

ucf_ms_builder_cli registry repo clear

Set the Registry Cache Path#

ucf_ms_builder_cli registry cache set [-h] -p CACHE_PATH

optional arguments:
  -h, --help            show this help message and exit

required arguments:
  -p CACHE_PATH, --cache-path CACHE_PATH
                        Select a cache path

e.g.

ucf_ms_builder_cli registry cache set -p /home/ubuntu/ucf_cache

View the Registry Cache Path#

ucf_ms_builder_cli registry cache view [-h]

optional arguments:
  -h, --help            show this help message and exit

e.g.

ucf_ms_builder_cli registry cache view

Clear the Registry Cache#

ucf_ms_builder_cli registry cache clear [-h]

optional arguments:
  -h, --help            show this help message and exit

e.g.

ucf_ms_builder_cli registry cache clear

Component Command component#

The Component command component can be used to list and view information about components available that can be used to implement a microservice.

$ ucf_ms_builder_cli component [-h]  ...

positional arguments:

    add       Recursively scan directory for components and add them to cache
    list      List available components
    info      Display info of a component

optional arguments:
  -h, --help  show this help message and exit

List Components#

ucf_ms_builder_cli component list [-h]

optional arguments:
  -h, --help  show this help message and exit

e.g.

ucf_ms_builder_cli component list

View Information for a Component#

ucf_ms_builder_cli component info [-h] -c COMPONENT_NAME

optional arguments:
  -h, --help            show this help message and exit

required arguments:
  -c COMPONENT_NAME, --component COMPONENT_NAME
                        List component info

e.g.

ucf_ms_builder_cli component info -c ucf.k8s.container

Add Custom Components#

ucf_ms_builder_cli component add [-h] -d DIR_PATH [--overwrite]

optional arguments:
  -h, --help            show this help message and exit

required arguments:
  -d DIR_PATH, --directory DIR_PATH
                        Directory path containing components
  --overwrite           Overwrite components in cache having the same type

e.g.

ucf_ms_builder_cli component add -d /home/nvidia/ucf_custom_components