UCF Microservice Builder CLI

The UCF 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.0.0
$ ucf_ms_builder_cli --version-all
Versions:
        MS Builder: v2.0.0
        UCF MS Spec: v2.0.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