Developer Activity: Innerloop

Login as Developer

  • You will perform this activity as a Developer.

    • Logout from Developer Hub

      Click to see how to logout
      • Navigate to the Settings side-menu of Developer Hub and click on the kebab menu in the Profile card

        Settings of Red Hat Developer Hub
      • Sign out of Red Hat Developer Hub using the Settings screen as shown.

        Signing out of Red Hat Developer Hub
    • Logout from Gitlab

      Click to see how to logout
      • Click on the Profile icon, and Sign out from the dropdown.

        Signing out of Red Hat Developer Hub
  • Login to Red Hat Developer Hub and GitLab as dev1/{common_password}

Import parasol-store-api OpenAPI

  • As a first step, import the API so that this API can then be associated with the parasol-store component .

  • From the Create side-menu, click on the Choose button of Import API to Existing Catalog Envelope template.

    import api template

  • You will be presented with the Software Templates wizard. Follow the next steps to fill out this wizard.

  • Step 1: Provide information about Catalog Envelope to which API will be included. Fill out the following values and click Next

    Click to view a screenshot

    import api template 1

    Field Description Value

    Gitlab Hostname

    Keep default value

    https://gitlab-gitlab.{openshift_cluster_ingress_domain}

    GitLab Organization

    Enter value

    parasol

    Repository Name

    Enter value

    envelope-parasol-catalog

  • Step 2: Provide information about your existing API. Fill out the following values and click Next

    Click to view a screenshot

    import api template 2

    Field Description Value

    GitLab Organization

    This is the Git org where the repo resides

    parasol

    Repository Name

    enter this value

    parasol-store-api

    System Name

    System (auto-populated)

    system:default/parasol-system

    Path to where API spec is defined

    Enter full path of the API

    https://gitlab-gitlab.{openshift_cluster_ingress_domain}/parasol/parasol-store-api/-/blob/main/openapi.yaml

    A Short Description Of This Component

    Enter value

    API for parasol-store

    Type Of API

    Choose from dropdown

    openapi

  • Step 3: Provide information about the new component for your existing API. Fill out the following values and click Next

    Click to view a screenshot

    import api template 3

    Field Description Value

    Component Name

    This is how this API will be identified by Developer Hub

    parasol-store-api

    Owner

    Choose from dropdown

    group:default/dev1

    A Short Description Of This Component

    Enter a suitable description

    Open API specification for the parasol-store application

    Lifecycle

    Enter value. Can be any lifecycle value, but take great care to establish a proper taxonomy for these. (Well-known values experimental, production and deprecated)

    Production

  • Step 4: Review & Create. Review the fields, and click on the Create button

    Click to view a screenshot

    import api template 4

  • You will be presented with two URLs pointing to merge the requests.

    import api template 5

  • Click on each of the links to open the merge request, and complete the merge by click on the Merge button

    • Merge the PR catalog envelope

      Click to view a screenshot

      api template merge component

    • Merge PR to push catalog-info.yaml and TechDocs

      Click to view a screenshot

      api template merge envelope

  • You can navigate to the envelope-parasol-catalog repo to see that the API’s catalog-info has been added to the envelope.yaml file, and under the parasol-store-api folder docs and catalog-info.yaml are created.

  • In a few minutes, the Parasol API that you just imported will appear in the API section automatically. This is because of the auto-discover feature that you had enabled in the previous steps

    view api

    • Click on parasol-store-api and explore the component. The Docs tab displays the skeleton techdocs that was added.

    • More interestingly the Definition tab showcases the OpenAPI spec nicely formatted. This is due to the fact that you selected openapi as the API type while importing the API.

      Click to view a screenshot

      view api definition

Import parasol-store service

  • From the Create side-menu of Developer Hub, click on the Choose button of the Import Existing App to Catalog Envelope template.

    import app template

  • Fill out the following values in the wizard similarly by going through the steps. Refer to the following table for the data for each step

  • Step 1: Import existing application, autocreate config-info.yaml and conditionally setup techdocs.

    Click to view a screenshot

    import app template 1

    Field Description Value

    Gitlab Hostname

    Keep default value

    https://gitlab-gitlab.{openshift_cluster_ingress_domain}

    GitLab Organization

    Enter value

    parasol

    Repository Name

    Enter value

    envelope-parasol-catalog

  • Step 2: Provide information about your existing app

    Click to view a screenshot

    import app template 2

    GitLab Organization This is the Git org where the repo resides parasol

    Repository Name

    enter this value

    parasol-store

    System Name

    System

    system:default/parasol-system

    Does this repo contain manifests?

    This option conditionally auto-generates the metdata with the right labels which will be used to pull in CI/CD, Deployment and other details

    Make sure to check the box

  • Step 3: Provide information about the new component for your existing app

    Click to view a screenshot

    import app template 3

    Field Description Value

    Component Name

    This is how this API will be identified by Developer Hub

    parasol-store

    Owner

    Choose from dropdown

    group:default/dev1

    Type

    The type of component. Well-known and common values: service, website, library.

    service

    A Short Description Of This Component

    Enter a suitable description

    Core services for the Parasol application

    Check to add TechDocs

    This option conditionally auto-generates TechDocs skeleton for the component

    Check the box

    Lifecycle

    Enter value. Can be any lifecycle value, but take great care to establish a proper taxonomy for these. (Well-known values experimental, production and deprecated)

    Production

  • Step 4: Review & Create. Review the fields, and click on the Create button

    Click to view a screenshot

    import app template 4

  • In the final step you are presented with two Merge Requests

    import app template 5

  • Click on each of the links to open the merge request, and complete the merge by click on the Merge button

    • Merge the PR to update catalog envelope

      Click to view a screenshot

      app template merge component

    • Merge PR for catalog-info.yaml

      Click to view a screenshot

      app template merge envelope

Explore the parasol-store component in the Catalog section

  • In a few minutes the parasol-store Component you just imported will start appearing in the Catalog section of RHDH automatically. This is because of the auto-discover feature that you had enabled in the previous steps

    view parasol store component

Click on the parasol-store link to view the component. You can step through each of the tabs to see how RHDH provides a single pane of glass to see

  • Topology showing the deployments on OpenShift

    Click to view a screenshot

    parasol store topo

  • CI showing Pipeline Runs is currently empty, because there are no pipeline runs yet.

  • CD tab showing the deployed components/systems using ArgoCD plugin

    Click to view a screenshot

    parasol store argo

  • Api tab shows the Consumed API parasol-store-api. Explore the Dependencies tab as well.

  • The Docs contains the skeleton TechDocs created by the template. You can click on the Pencil icon to go ahead a edit the docs.

[Optional] Import parasol-web

You can now optionally import the parasol-web component as well just like you imported parasol-store.

  • The org is parasol

  • Repo for parasol-web is parasol-web