UCS Tools Application#

A UCS Tools Application (aka UCS Application or UCS App) is 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

You can build UCS Applications 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, and other requirements satisfaction such as microservice secrets are specified.

Get a list of available microservices and detailed information about microservices using the UCS Studio GUI or the UCS Application Builder CLI tool.

Create applications based on the information provided by these tools.

Creating an Application#

Create a UCS Application manually by writing a YAML in UCS Application specification format or using the UCS Studio GUI. For more information, see Creating an Application.

Sample Application - Visual Format#

UCS Studio - Sample Application

Basic Information#

Include the following information about the application:

Field

Description

specVersion

The UCS Specification version that the application adheres to. Current specVersion is 2.5.0

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. Use the format <microservice-type>:<microservice-version>. The <microservice-version> can be a fixed version or use NPM version range spec format from npm/node-semver.

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, see Fulfill the secrets in an UCS Application

Connections#

Specify the connections between microservices in the application using the format <microservice-name-with-egress-endpoint>/<egress-endpoint-name>: <microservice-name-with-ingress-endpoint>/<ingress-endpoint-name>.

If the egress endpoint supports multiple connections (multi: true), use this format:

<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#

Specify the secrets used in the application and their configuration details. For more information, see Fulfill the secrets in an UCS Application.

Application Features#

UCS Applications provide 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, see Using Vault secrets.

  • Certificates (certificates) - For cert-manager-based Certificate Management. This section contains details on certificates that should be added to an application. For more information, see Using cert-manager Certificate.