From ef5090d7075529b8eb75893510bc5d1a9807b86b 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 --- README.md | 169 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 114 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 6f0ee6ff..413e27e1 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,124 @@ # 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. +## Quick start -## Enhacement +**NOTE:** Procedure steps marked with an astericks (`*`) are likely to change in future API changes. -https://hackmd.io/@i2YBW1rSQ8GcKcTIHn9CCA/B1cMe1kHj +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. -## Quickstart. +1. Create a `Catalog` object that points to the OperatorHub Community catalog by running the following command: -``` -$ 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 -. -. -. -``` + ```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 + ``` + + *Example output* + ```sh + https://github.com/operator-framework/catalogd/releases/download/v0.3.0/catalogd.yaml + namespace/catalogd-system created + customresourcedefinition.apiextensions.k8s.io/bundlemetadata.catalogd.operatorframework.io created + customresourcedefinition.apiextensions.k8s.io/catalogs.catalogd.operatorframework.io created + customresourcedefinition.apiextensions.k8s.io/packages.catalogd.operatorframework.io created + serviceaccount/catalogd-controller-manager created + role.rbac.authorization.k8s.io/catalogd-leader-election-role created + clusterrole.rbac.authorization.k8s.io/catalogd-manager-role created + clusterrole.rbac.authorization.k8s.io/catalogd-metrics-reader created + clusterrole.rbac.authorization.k8s.io/catalogd-proxy-role created + rolebinding.rbac.authorization.k8s.io/catalogd-leader-election-rolebinding created + clusterrolebinding.rbac.authorization.k8s.io/catalogd-manager-rolebinding created + clusterrolebinding.rbac.authorization.k8s.io/catalogd-proxy-rolebinding created + service/catalogd-controller-manager-metrics-service created + deployment.apps/catalogd-controller-manager created + ``` + +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 + ``` + +1. Run the following command to get a list of bundles: `*` + + ```sh + $ kubectl get bundlemetadata + ``` ## Contributing Thanks for your interest in contributing to `catalogd`!