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#
Pass the “-v” flag to any of the CLIs.
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
metadata Get service metadata from NGC
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 PUSH] [--skip-tests] [--skip-compliance] [-f] [--keep-app-specs]
options:
-h, --help show this help message and exit
--push PUSH Push service to specified NGC team if it builds successfully
--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
Fetching Microservice Metadata#
ucf_ms_builder_cli service validate [-h] -n NAME -v MS-VERSION -r REPO
options:
-h, --help show this help message and exit
required arguments:
-n NAME, --name NAME Name of the microservice
-v MS-VERSION, --version MS-VERSION
Version of the microservice
-r REPO, --repo REPO Repo(Team) where specific version of the microservice exists.
e.g.
ucf_ms_builder_cli service metadata -n ucf.svc.myservice -v 0.0.1 -r dev-team
Here is an example of the output of the command for a microservice:
{
"Org": "eevaigoeixww",
"ServiceName": "ucf.svc.image-segmentation-client",
"Desciption": "image-segmentation-client\n==============================\n\n## Description\nThis microservice forms the client or frontend-UI of the UCF Reference App. This client allows the user to accept any image and send it further to the Segmentation service and receive its output to be displayed on the UI.\n\n## Usage\nNA\n\n## Performance\nNA\n\n## Supported Platforms\nFor x86_64 and Nvidia dGPU\n\n## Deployment requirements\nNA\n\n## License\nLICENSE.txt has been updated for the above microservice.\n\n## Known Issues / Limitations\nNA\n\n## References\nNA",
"CustomMetrics": [
{
"attributes": [
{
"key": "tagged_from_version",
"value": "1.0.3"
},
{
"key": "ucs_validated",
"value": "true"
},
{
"key": "created_from",
"value": "UCS Tools 2.10.0-rc4"
}
],
"name": "ucs_tools"
}
]
}
Synchronize a Microservice#
usage: ucf_ms_builder_cli service sync [-h] -n NAME [-v MS-VERSION] [--validated] [-r REPO]
options:
-h, --help show this help message and exit
-v MS-VERSION, --version MS-VERSION
Version of the microservice to sync (default: latest)
--validated Allows the user to sync validated services only
-r REPO, --repo REPO Repo (team) where specific version of the microservice exists.
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