From 2ea4ad192d7d20817ced472cb7aed578d7ba40e8 Mon Sep 17 00:00:00 2001 From: Bryce Palmer Date: Tue, 12 Sep 2023 17:36:39 -0400 Subject: [PATCH 1/2] (docs): Add docs on fetching contents via HTTP server Signed-off-by: Bryce Palmer --- docs/fetching-catalog-contents.md | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 docs/fetching-catalog-contents.md diff --git a/docs/fetching-catalog-contents.md b/docs/fetching-catalog-contents.md new file mode 100644 index 00000000..564b7ea8 --- /dev/null +++ b/docs/fetching-catalog-contents.md @@ -0,0 +1,33 @@ +# Fetching `Catalog` contents from the Catalogd HTTP Server +This document covers how to fetch the contents for a `Catalog` from the +Catalogd HTTP Server that runs when the `HTTPServer` feature-gate is enabled +(enabled by default). + +All `Catalog`s currently have their contents served via the following endpoint pattern: +`https://{httpServerBaseUrl}/catalogs/{Catalog.Name}/all.json` + +All responses will be a JSON stream where each JSON object is a File-Based Catalog (FBC) +object. + +For example purposes we make the following assumption: +- A `Catalog` named `operatorhubio` has been created and successfully unpacked +(denoted in the `Catalog.Status`) + +## On cluster + +When making a request for the contents of the `operatorhubio` `Catalog` from within +the cluster issue a HTTP `GET` request to +`http://catalogd-catalogserver.catalogd-system.svc/catalogs/operatorhubio/all.json` + + +## Off cluster + +When making a request for the contents of the `operatorhubio` `Catalog` from outside +the cluster, we have to perform an extra step: +1. Port forward the `catalogd-catalogserver` service in the `catalogd-system` namespace: +```sh +kubectl -n catalogd-system port-forward svc/catalogd-catalogserver +``` + +Once the service has been successfully forwarded to a localhost port, issue a HTTP `GET` +request to `http://localhost:/catalogs/operatorhubio/all.json` From 755ce7aaac9f0e405541a09e98b030f851d442a1 Mon Sep 17 00:00:00 2001 From: Bryce Palmer Date: Wed, 13 Sep 2023 10:14:30 -0400 Subject: [PATCH 2/2] add curl examples Signed-off-by: Bryce Palmer --- docs/fetching-catalog-contents.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/fetching-catalog-contents.md b/docs/fetching-catalog-contents.md index 564b7ea8..fe7e46a0 100644 --- a/docs/fetching-catalog-contents.md +++ b/docs/fetching-catalog-contents.md @@ -4,7 +4,7 @@ Catalogd HTTP Server that runs when the `HTTPServer` feature-gate is enabled (enabled by default). All `Catalog`s currently have their contents served via the following endpoint pattern: -`https://{httpServerBaseUrl}/catalogs/{Catalog.Name}/all.json` +`http://{httpServerBaseUrl}/catalogs/{Catalog.Name}/all.json` All responses will be a JSON stream where each JSON object is a File-Based Catalog (FBC) object. @@ -19,6 +19,10 @@ When making a request for the contents of the `operatorhubio` `Catalog` from wit the cluster issue a HTTP `GET` request to `http://catalogd-catalogserver.catalogd-system.svc/catalogs/operatorhubio/all.json` +An example command to run a `Pod` to `curl` the catalog contents: +```sh +kubectl run fetcher --image=curlimages/curl:latest -- curl http://catalogd-catalogserver.catalogd-system.svc/catalogs/operatorhubio/all.json +``` ## Off cluster @@ -26,8 +30,13 @@ When making a request for the contents of the `operatorhubio` `Catalog` from out the cluster, we have to perform an extra step: 1. Port forward the `catalogd-catalogserver` service in the `catalogd-system` namespace: ```sh -kubectl -n catalogd-system port-forward svc/catalogd-catalogserver +kubectl -n catalogd-system port-forward svc/catalogd-catalogserver :80 ``` Once the service has been successfully forwarded to a localhost port, issue a HTTP `GET` request to `http://localhost:/catalogs/operatorhubio/all.json` + +An example `curl` request that assumes the port-forwarding is mapped to port 8080 on the local machine: +```sh +curl http://localhost:8080/catalogs/operatorhubio/all.json +```