Skip to content

3scale-labs/kamrad

Repository files navigation

Kamrad

License

A Developer Portal builder for Kuadrant, a Cloud Native API MGMT solution. Based on Hugo

Overview

Kamrad consumes Kuadrant resources, on demand or at build time, generates and deploys a highly customizable static site with features like API documentation, content creation, and plugins to connect to 3rd party services. It has a completely static site generation mode, an "on demand"/"dynamic" one and a mix of both.

Dynamic

This Kamrad operation mode will generate a developer portal that will be consuming resources from Kuadrant at runtime (from the browser) via Kamwiel

Kamrad dynamic content

Static

Kamrad also offers a way of producing a fully static site, where it generates pages at build time, the CI/CD process will consume Kuadrant exposed by Kamwiel

Kamrad static content

Usage

Given this is just a builder, one will need to have Kamwiel running within a Kuadrant cluster.

Locally

You'll need to have the following installed locally:

  1. Clone this repo with submodules and cd into it
    git clone --recurse-submodules git@github.com:3scale-labs/kamrad.git && cd kamrad`
  2. Install Node dependencies
    npm install
  3. Run Kamrad locally
    make run
  4. Profit! Open in your favourite browser -> Kamrad

Github pages

Right now, at this PoC stage, the only way to give it a try is forking this repo, adding some configuration as secrets described below and trigger one of the workflows. You'll also need to set up GH pages

Config as secrets

  • KAMRAD_TOKEN A token with repo access for the current GH repository
  • KAMWIEL_API_HASH Could be blank, later on will be populated with Kamwiel state
  • KAMWIEL_URL The URL where Kamwiel is hosted
  • KAMWIEL_API_KEY The API key issued by Kamwiel to use its services

Workflows available

  • api-list A repository_dispatch workflow that will trigger the build and deploy, among other checks, of the developer portal to the Github pages branch. The event, that eventually will come from Kamwiel, it's a POST to https://api.github.com/repos/user/repo/dispatches looks like
    {
      "event_type": "api-list",
      "client_payload": {
          "hash": "THIS_HASH_REPRESENTS_KAMWIEL_API_LIST_STATE"
      }
    }
  • deploy Is a workflow run on any push to the default branch. It will also build and deploy to GH pages

Features

This feature list will be evolving with time. Right now it's PoC which might drastically change in the future.

Feature Description Stage
Content Management Markdown Ready
HTML Ready
Images/Videos Ready
Server side content Through Hugo shortcodes. At the moment some Kuadrant resources only. Ready
AsciiDoc Would include AsciiDoctor and another build process In analysis
OAS Done with a `shortcode` manually or generation script. Based on Swagger Ready
AsyncAPI Planned
Authentication API Key Ready
SSO Planned
User MGMT Planned
Hosting Github Pages Ready
OpenShift Planned
Hosting Provider Planned

About

Kuadrant's developer portal builder

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published