From 002c2953e119eb9ca5e2a3e84c146a54da664438 Mon Sep 17 00:00:00 2001 From: Michael Ryan Peter Date: Fri, 9 Jun 2023 13:02:38 -0400 Subject: [PATCH] Update README Issue: #81 Signed-off-by: Michael Ryan Peter Fix output examples Signed-off-by: Michael Ryan Peter --- README.md | 211 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 156 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index f6661d12..aca5d36d 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,166 @@ # catalogd -This repository is a prototype for a custom apiserver that uses a (dedicated ectd instance)[configs/etcd] to serve [FBC](https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs) content on cluster in a Kubernetes native way on cluster. +Catalogd is a Kubernetes extension that unpacks [file-based catalog (FBC)](https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs) content for on-cluster clients. Currently, catalogd unpacks FBC content that is packaged and distributed as container images. The catalogd road map includes plans for unpacking other content sources, such as Git repositories and OCI artifacts. For more information, see the catalogd [issues](https://github.com/operator-framework/catalogd/issues/) page. +Catalogd helps customers discover installable content by hosting catalog metadata for Kubernetes extensions, such as Operators and controllers. For more information on the Operator Lifecycle Manager (OLM) v1 suite of microservices, see the [documentation](https://github.com/operator-framework/operator-controller/docs/) for the Operator Controller. -## Enhacement +## Quick start -https://hackmd.io/@of-olm/B1cMe1kHj +**NOTE:** Procedure steps marked with an astericks (`*`) are likely to change with future API updates. -## Quickstart. +1. To install catalogd, navigate to the [releases](https://github.com/operator-framework/catalogd/releases/) page, and follow the install instructions included in the release you want to install. -``` -$ kind create cluster -$ kubectl apply -f https://github.com/operator-framework/catalogd/config/crd/bases/ -$ kubectl apply -f https://github.com/operator-framework/catalogd/config/ -$ kubectl create ns test -$ kubectl apply -f config/samples/core_v1alpha1_catalog.yaml - -$ kubectl get catalog -n test -NAME AGE -catalog-sample 98s - -$ kubectl get bundlemetadata -n test -NAME AGE -3scale-community-operator.v0.7.0 28s -3scale-community-operator.v0.8.2 28s -3scale-community-operator.v0.9.0 28s -falcon-operator.v0.5.1 2s -falcon-operator.v0.5.2 2s -falcon-operator.v0.5.3 1s -falcon-operator.v0.5.4 1s -falcon-operator.v0.5.5 1s -flux.v0.13.4 1s -flux.v0.14.0 1s -flux.v0.14.1 1s -flux.v0.14.2 1s -flux.v0.15.2 1s -flux.v0.15.3 1s -. -. -. - -$ kubectl get packages -n test -NAME AGE -3scale-community-operator 77m -ack-apigatewayv2-controller 77m -ack-applicationautoscaling-controller 77m -ack-dynamodb-controller 77m -ack-ec2-controller 77m -ack-ecr-controller 77m -ack-eks-controller 77m -ack-elasticache-controller 77m -ack-emrcontainers-controller 77m -ack-iam-controller 77m -ack-kms-controller 77m -ack-lambda-controller 77m -ack-mq-controller 77m -ack-opensearchservice-controller 77m -. -. -. -``` +1. Create a `Catalog` object that points to the OperatorHub Community catalog by running the following command: + + ```sh + $ kubectl apply -f - << EOF + apiVersion: catalogd.operatorframework.io/v1alpha1 + kind: Catalog + metadata: + name: operatorhubio + spec: + source: + type: image + image: + ref: quay.io/operatorhubio/catalog:latest + EOF + ``` + +1. Verify the `Catalog` object was created successfully by running the following command: + + ```sh + $ kubectl describe catalog/operatorhubio + ``` + + *Example output* + ```sh + Name: operatorhubio + Namespace: + Labels: + Annotations: + API Version: catalogd.operatorframework.io/v1alpha1 + Kind: Catalog + Metadata: + Creation Timestamp: 2023-06-23T18:35:13Z + Generation: 1 + Managed Fields: + API Version: catalogd.operatorframework.io/v1alpha1 + Fields Type: FieldsV1 + fieldsV1: + f:metadata: + f:annotations: + .: + f:kubectl.kubernetes.io/last-applied-configuration: + f:spec: + .: + f:source: + .: + f:image: + .: + f:ref: + f:type: + Manager: kubectl-client-side-apply + Operation: Update + Time: 2023-06-23T18:35:13Z + API Version: catalogd.operatorframework.io/v1alpha1 + Fields Type: FieldsV1 + fieldsV1: + f:status: + .: + f:conditions: + f:phase: + Manager: manager + Operation: Update + Subresource: status + Time: 2023-06-23T18:35:43Z + Resource Version: 1397 + UID: 709cee9d-c669-46e1-97d0-e97dcce8f388 + Spec: + Source: + Image: + Ref: quay.io/operatorhubio/catalog:latest + Type: image + Status: + Conditions: + Last Transition Time: 2023-06-23T18:35:13Z + Message: + Reason: Unpacking + Status: False + Type: Unpacked + Phase: Unpacking + Events: + ``` + +1. Run the following command to get a list of packages: `*` + + ```sh + $ kubectl get packages + ``` + + *Example output* + ```sh + NAME AGE + operatorhubio-ack-acm-controller 69s + operatorhubio-ack-apigatewayv2-controller 69s + operatorhubio-ack-applicationautoscaling-controller 69s + operatorhubio-ack-cloudtrail-controller 69s + operatorhubio-ack-dynamodb-controller 69s + operatorhubio-ack-ec2-controller 69s + operatorhubio-ack-ecr-controller 69s + operatorhubio-ack-eks-controller 69s + operatorhubio-ack-elasticache-controller 69s + operatorhubio-ack-emrcontainers-controller 69s + operatorhubio-ack-eventbridge-controller 69s + operatorhubio-ack-iam-controller 69s + operatorhubio-ack-kinesis-controller 69s + operatorhubio-ack-kms-controller 69s + operatorhubio-ack-lambda-controller 69s + operatorhubio-ack-memorydb-controller 69s + operatorhubio-ack-mq-controller 69s + ... + ``` +1. Run the following command to get a list of bundles: `*` + + ```sh + $ kubectl get bundlemetadata + ``` + + *Example output* + ```sh + NAME AGE + operatorhubio-ack-acm-controller.v0.0.1 2m15s + operatorhubio-ack-acm-controller.v0.0.2 2m15s + operatorhubio-ack-acm-controller.v0.0.4 2m15s + operatorhubio-ack-acm-controller.v0.0.5 2m15s + operatorhubio-ack-acm-controller.v0.0.6 2m15s + operatorhubio-ack-acm-controller.v0.0.7 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.10 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.11 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.12 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.13 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.14 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.15 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.16 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.17 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.18 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.19 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.20 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.21 2m15s + operatorhubio-ack-apigatewayv2-controller.v0.0.22 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.0.9 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.0 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.1 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.2 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.3 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.4 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.5 2m14s + operatorhubio-ack-apigatewayv2-controller.v0.1.6 2m14s + operatorhubio-ack-apigatewayv2-controller.v1.0.0 2m14s + operatorhubio-ack-apigatewayv2-controller.v1.0.2 2m14s + operatorhubio-ack-apigatewayv2-controller.v1.0.3 2m14s + operatorhubio-ack-apigatewayv2-controller.v1.0.4 2m14s + ... + ``` ## Contributing Thanks for your interest in contributing to `catalogd`!