UCS Tools Application
A UCS Tools Application (aka UCS Application or UCS App) is the the description of a cloud application created using UCS microservices in UCS Application graph specification format.
A UCS Application consists of:
Basic Information - Application name, description, version
Documentation - Detailed documentation on how to build, deploy and interact with the application
Dependencies - A list of microservices used in the application and the versions of the microservices to use
Components - A list of microservices and other components to add to the application along with their configuration - parameters, secrets, etc.,
Connections - A list of connections between different microservices
UCS Applications can be built to generate a deployable helm chart using UCS Studio or UCS Application Builder CLI. While building an application, the tools perform multiple validations like microservice parameter value validation, connection validation such as whether connected endpoints are compatible, other requirements satisfaction such as microservice secrets are specified.
List of available microservices and detailed information about microservices can be obtained using the UCS Studio GUI or the UCS Application Builder CLI tool.
Applications can be created based on the information provided by these tools.
Creating an Application
A UCS Application can be created manually by writing a YAML in UCS Application specification format or using the UCS Studio GUI. For more information, refer to Creating an Application
Sample Application - Visual Format
Basic Information
Following information about the application is included:
Field |
Description |
---|---|
specVersion |
The UCS Specification version that the application adheres to. Current specVersion is |
name |
Application name |
description |
A short description of the application |
version |
Application version. Follows semantic versioning https://semver.org/ |
doc |
Path to a file containing detailed documentation for the application |
Dependencies
A list of microservices and their versions to use in the application. The format is a list of strings <microservice-type>:<microservice-version>
. <microservice-version>
can be a fixed version or in the format of NPM version range spec https://github.com/npm/node-semver#ranges
Components
A list of microservices and other components (like configmap) to add to the application along with their configuration. Each component should have:
Field |
Description |
---|---|
name |
A unique string identifier for the microservice/component so it can be referred to in other places in the application |
type |
Type of the microservice/component |
parameters |
An object to set parameter values of the microservice/component. Must follow the parameter schema of the component |
secrets |
Set secrets on the microservice. For more information refer to Fulfill the secrets in an UCS Application |
Connections
Specifies the connections between microservices in the application in the format <microservice-name-with-egress-endpoint>/<egress-endpoint-name>: <microservice-name-with-ingress-endpoint>/<ingress-endpoint-name>
or if the egress endpoint supports multiple connections (multi: true
) -
<microservice-name-with-egress-endpoint>/<egress-endpoint-name>: [
<microservice-name-with-ingress-endpoint1>/<ingress-endpoint-name1>,
<microservice-name-with-ingress-endpoint2>/<ingress-endpoint-name2>
]
Secrets
Specifies the secrets used in the application and their configuration details. For more information refer to the Fulfill the secrets in an UCS Application.
Application Features
UCS Applications provides certain features on top of microservices. These include:
Vault Agent (vaultAgent) - For Vault Server based Secrets Management. This section contains details on connection & authentication details for Vault. For more information, refer to Using Vault secrets.
Certificates (certificates) - For cert-managet based Certificate Management. This section contains details on certificates that should be added to an application. For more information, refer to Using cert-manager Certificate.