Module 4.1: Introduction to Concepts
Software templates to import existing applications
You’ve already seen the magic of the catalog-info.yaml
file. Developer Hub identifies components based on a catalog-info.yaml
file in the repository. This file contains details about
-
where the source code is
-
how to access the documentation
-
who the owners are
-
what are the dependencies and dependents etc.
With the right plugins, this catalog-info.yaml
file can also help to show these critical information in a single pane of glass within the component itself on Developer Hub:
-
CI pipelines
-
CD deployments
-
Git merge statuses
-
Cluster details
To make importing a large number of existing applications into Developer Hub possible/feasible, the Platform Engineering (PE) team creates a Software Template that can automate both creation of the catalog-info.yaml
file, and also auto-create techdocs
skeleton structure.
There are two options in terms of where the Catalog Info and TechDocs could be stored for these existing software apps.
-
The entities can be added to the same Git repositories as the existing source-code repo
-
Create an entity which acts like a collection of all of the catalog-info files and TechDocs of the existing code
In this case, so as to not change existing source code, Parasol team goes with the 2nd approach of creating an Envelope of all the catalog-info.yaml
files of the apps. The Envelopes are nothing but Location files which contain references to a bunch of other catalog-info.yaml` files.
We can then setup Developer Hub to auto-discover these special Envelope files based on the file names (envelope-*.yaml wildcard) across the git repo. The reason why we look for specific file names is to ensure we don’t overload Git with multiple "searches" while performing auto-discovery.
Note: While setting up auto-discovery you can define the schedule defining how often you want this to run. You will need to judicious with this scheduling so as not to hit Git API ratelimits. Learn more about Github rate limits
An overview of Parasol online web-app
The Parasol web app consists of
-
parasol-web
online web-app (Node + Angular) -
parasol-store
core services called parasol-store (Quarkus), and -
parasol-db
core database (PostgreSQL) -
parasol-api
(OpenAPI Spec)
In the next sections of this module, we will shadow both the Platform Engineers and the Developers as they navigate through onboarding existing applications, and accelerate dev inner-loop leading to increased developer productivity.