Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
Issue: operator-framework#81

Signed-off by: Michael Ryan Peter <mipeter@redhat.com>
  • Loading branch information
michaelryanpeter committed Jun 23, 2023
1 parent 9fe45a6 commit 3cfb851
Showing 1 changed file with 114 additions and 55 deletions.
169 changes: 114 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
@@ -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 to allow 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: <none>
Annotations: <none>
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: <none>
```
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`!
Expand Down

0 comments on commit 3cfb851

Please sign in to comment.