Adding External Applications to Cozystack Catalog

Learn how to add managed applications from external sources

Since v0.35.0, Cozystack administrators can add applications from external sources in addition to the standard application catalog. These applications will appear in the same application catalog and behave like regular managed applications for platform users.

This guide explains howto define a managed application package and how to add it to Cozystack.

1. Create an Application Package Repository

Create a repository with the application package sources. For a reference, see cozystack/external-apps-example.

Application repository has the following structure:

./appsHelm charts for applications that can be installed from the dashboard.
./chartsHelm charts for system applications that will be installed permanently.
./cozystackresourcedefinitionsManifests with CozystackResourceDefinition for registering new resources in the Kubernetes API.
./marketplacepanelsManifests with MarketplacePanel for creating application entries in the dashboard.
./systemHelmReleases for system applications and namespaces.

Just like standard Cozystack applications, this external application package is using Helm and FluxCD. To learn more about developing application packages, read the FluxCD docs:

2. Add the Application Package with a Manifest

Create a manifest file with resources GitRepository and Kustomization, as in the example:

apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: external-apps
  namespace: cozy-public
spec:
  interval: 1m0s
  ref:
    branch: main
  timeout: 60s
  url: https://github.com/<org>/<your-repo-name>.git
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: external-apps
  namespace: cozy-public
spec:
  force: false
  interval: 10m0s
  path: ./
  prune: true
  sourceRef:
    kind: GitRepository
    name: external-apps

Next, write this manifest to a file and apply it to your Cozystack cluster:

kubectl apply -f init.yaml

After applying the manifest, open your application catalog to confirm that the application is available.