Application metadata

The application metadata enables users to discover applications in the catalog by providing information about the application itself such as the license, where to find documentation, available versions, etc. The main purpose behind providing this type of additional information when publishing an application is to improve its documentation and improve discoverability for they target users.

The application metadata is another YAML file that will be added when uploading an application to the catalog, and has the following structure:

apiVersion: core.napptive.com/v1alpha1
kind: ApplicationMetadata
# Name of the application, not necessarily a valid k8s name.
name: "My App Name"
version: 1.0
description: Short description for searches. Long one plus how to goes into the README.md
# Keywords facilitate searches on the catalog
keywords:
  - "tag1"
  - "tag2"
  - "tag3" 
license: "Apache License Version 2.0"
url: "https://..."
doc: "https://..."
# Requires gives a list of entities that are needed to launch the application.
requires:
  traits:
    - my.custom.trait
  scopes:
    - my.custom.scope
  # K8s lists Kubernetes specific entities. This provides a separation between OAM entities
  # in an orchestration-agnostic environment, and applications that specifically require Kubernetes.
  k8s:
    - apiVersion: my.custom.package
      kind: CustomEntityKind
      name: name
# The logo can be used as visual information when listing the catalog so the user
# recognizes more easily the application.
logo:
  - src: "https://my.domain/path/logo.png"
    type: "image/png"
    size: "120x120"

Notice that the logo image will be hot-linked to be shown on the catalog when selecting the application, so we recommend you to ensure that the image URL accepts this type of traffic. Future revisions of the catalog will address this limitations.

As an example, the following metadata.yaml file associated with the MongoDB application example, will result in the following content being shown on the catalog.

mongo.metadata.yaml
apiVersion: core.napptive.com/v1alpha1
kind: ApplicationMetadata
name: "MongoDB"
version: "jammy"
description: MongoDB database
keywords:
  - "mongodb"
  - "database"
license: "SSPLv1"
url: "https://www.mongodb.com"
doc: "https://hub.docker.com/_/mongo"
logo:
  # Do not hotlink images without permission :)
  - src: "https://storage.googleapis.com/artifacts.playground.napptive.dev/logos/mongodb.svg"
    type: "image/png"
    size: "120x120"

MongoDB in the catalog

For more details on how to upload an application to the catalog, follow the related tutorial to upload your own application to the catalog.