An App Catalog is a structured git repository that contains all the necessary information EDA Store needs to install an app. The Manifest is the most important one. But the app can also contain other app metadata information for the UI, like a README, or a license (see the manifest appInfo specification field). The catalog of built-in apps that is delivered along with EDA can be found here.
vendors/
<vendor-1-name>
apps/
<app-1-name>/
manifest.yaml
README.md
LICENSE
... # Other useful files, which can be referenced in the manifest and used in the UI.
<app-2-name>/
...
<vendor-2-name>/
apps/
...
...
The manifest of an App must be called manifest.yaml and be placed in vendors/<vendor-name>/apps/<app-name>/manifest.yaml in the git repository.
Apps will have multiple versions. To version the Apps in the Catalog, git tags are used. A structured git tag will be seen as an installable App (with a certain version) for the EDA Store, which can then be installed from the UI.
Any tag in the form of vendors/<vendor-name>/apps/<app-name>/<version> will be registered as an installable App by the EDA Store.
The version field should conform to Semantic Versioning 2.0, prefixed with a "v". For example: v0.1, v0.1.0-alpha.
If the Catalog-hosting Git repository requires authentication, you must create a Kubernetes secret that contains the credentials to connect to the Catalog git repository over HTTPS. This can be done using the following resource where you replace the data with the correct base64 encoded values.
mandatory label
The secrets used by the app catalog or app registry must have the eda.nokia.com/backup: "true" label for the EDA Store to pick them up.
apiVersion:v1kind:Secrettype:Opaquemetadata:name:your-creds# A unique secret namelabels:eda.nokia.com/backup:"true"data:username:<base64(username)># Base64 encoded usernamepassword:<base64(password or token)># Base64 encoded password/token
kubectlapply-f-<<EOFapiVersion: v1kind: Secrettype: Opaquemetadata: name: your-creds # A unique secret name labels: eda.nokia.com/backup: "true"data: username: <base64(username)> # Base64 encoded username password: <base64(password or token)> # Base64 encoded password/tokenEOF
You can create your own Catalog using the following resource. This uses the above created secret as authSecretRef.
apiVersion:appstore.eda.nokia.com/v1kind:Catalogmetadata:name:your-catalog# name of your catalogspec:title:Your Awesome Catalog# UI name of your catalog, optionalremoteURL:https://<your-catalog>.git# link to your git repository.authSecretRef:your-creds# reference to valid credentials for the git repositoryskipTLSVerify:{true|false}
kubectlapply-f-<<EOFapiVersion: appstore.eda.nokia.com/v1kind: Catalogmetadata: name: your-catalog # name of your catalogspec: title: Your Awesome Catalog # UI name of your catalog, optional remoteURL: https://<your-catalog>.git # link to your git repository. authSecretRef: your-creds # reference to valid credentials for the git repository skipTLSVerify: {true|false}EOF