catalog

command module
v0.0.0-...-ceccbbb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 8, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

README

KCP API Catalog

A library for kcp API catalog code.

The API Catalog provides publicly available interfaces (APIs, code, CLIs) that allows cluster admin/API providers to curate a collection of available APIs (APIExport) in the KCP environment.

What is API Catalog?

Each available API is encapsulated in a new API called CatalogEntry that is created by the cluster admin/API provider in a specific workspace.

The CatalogEntry contains a list of ExportReference and each ExportReference links to a corresponding APIExport. This 1:N pattern between CatalogEntry and APIExport facilitates variety of relationships between multiple APIExport such as dependencies or grouping.

In addition of APIExport identifier information, the CatalogEntry have additional fields such as Icons and Description to allow cluster admin/API provider to add more information to represent the API specification and information for UI/Console usage.

All of CatalogEntry in the same workspace is considered to be in the same group (catalog). The availability (available for binding) of a CatalogEntry depends on the location of the workspace and permissions to access the workspace. For example, if the catalog workspace is at root level, then the CatalogEntry in that catalog is usable for all tenants' workspaces. If the workspace belongs to a specific organization such as root:redhat, then it will only be accessible and usable to tenants under that redhat organization.

When API consumer wants to bind an available API from a CatalogEntry, an APIBinding is created with each ExportReference in Exports.

Current Goals

  • Initial Catalog API spec to support optional information such as Description in the spec
  • Link CatalogEntry API to singular or multiple APIExport using a list of ExportReference (name of the APIExport and workspace path)
  • CLI command bind to create APIBinding from ExportReference in CatalogEntry assuming all necessary RBAC are granted

Future Goals

  • Replace ExportReference reference in Exports with a IdentityHash to avoid exposing APIExport name and location
  • Create a RBAC generation/control mechanism to facilitate the full APIBinding usage such as permission request and maximum permission policy
  • Catalog controller to perform validation and additional reconciliation
  • More CLI commands

For contributions, issues, or general discussion, please see the kcp repository.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the catalog v1alpha1 API group +kubebuilder:object:generate=true +groupName=catalog.kcp.dev
Package v1alpha1 contains API Schema definitions for the catalog v1alpha1 API group +kubebuilder:object:generate=true +groupName=catalog.kcp.dev
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL