{"id":18510695,"url":"https://github.com/operator-framework/catalogd","last_synced_at":"2025-03-15T14:05:40.935Z","repository":{"id":144510146,"uuid":"547998191","full_name":"operator-framework/catalogd","owner":"operator-framework","description":"On-cluster FBC catalog content server","archived":false,"fork":false,"pushed_at":"2025-02-24T22:51:49.000Z","size":94665,"stargazers_count":19,"open_issues_count":7,"forks_count":34,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-02-27T21:22:29.675Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/operator-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-08T18:22:25.000Z","updated_at":"2025-01-21T09:31:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0e91333-a0ab-48d2-9184-a9a6b2f7ac91","html_url":"https://github.com/operator-framework/catalogd","commit_stats":{"total_commits":324,"total_committers":23,"mean_commits":14.08695652173913,"dds":0.7777777777777778,"last_synced_commit":"1dbab8e7e831d2670ea63e6ab8d49a9f157d5442"},"previous_names":["anik120/rukpak-packageserver"],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fcatalogd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fcatalogd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fcatalogd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fcatalogd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/operator-framework","download_url":"https://codeload.github.com/operator-framework/catalogd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243738981,"owners_count":20340001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T15:24:28.505Z","updated_at":"2025-03-15T14:05:40.916Z","avatar_url":"https://github.com/operator-framework.png","language":"Go","readme":"# catalogd\n\n---\n\u003e [!WARNING]\n\u003e This repository has been archived in January 2025.\n\u003e As part of that effort, Catalogd's functionality has been moved to v1's primary repository: [operator controller](https://github.com/operator-framework/operator-controller).\n\nIf you have any questions, please engage with us: [![Slack Channel](https://img.shields.io/badge/chat-4A154B?logo=slack\u0026logoColor=white \"Slack Channel\")](https://kubernetes.slack.com/archives/C0181L6JYQ2)\n\n---\n\nCatalogd 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. \n\nCatalogd 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/tree/main/docs) for the Operator Controller.\n\n## Quickstart DEMO\n[![asciicast](https://asciinema.org/a/682344.svg)](https://asciinema.org/a/682344)\n\n## Quickstart Steps\nProcedure steps marked with an asterisk (`*`) are likely to change with future API updates.\n\n**NOTE:** The examples below use the `-k` flag in curl to skip validating the TLS certificates. This is for demonstration purposes only.\n\n1. 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.\n\n1. Create a `ClusterCatalog` object that points to the OperatorHub Community catalog by running the following command:\n\n    ```sh\n    $ kubectl apply -f - \u003c\u003c EOF\n    apiVersion: olm.operatorframework.io/v1\n    kind: ClusterCatalog\n    metadata:\n      name: operatorhubio\n    spec:\n      source:\n        type: Image\n        image:\n          ref: quay.io/operatorhubio/catalog:latest\n    EOF\n    ```\n\n1. Verify the `ClusterCatalog` object was created successfully by running the following command:\n\n    ```sh\n    $ kubectl describe clustercatalog/operatorhubio\n    ```\n    \n    *Example output*\n    ```sh\n    Name:         operatorhubio\n    Namespace:\n    Labels:       olm.operatorframework.io/metadata.name=operatorhubio\n    Annotations:  \u003cnone\u003e\n    API Version:  olm.operatorframework.io/v1\n    Kind:         ClusterCatalog\n    Metadata:\n      Creation Timestamp:  2024-10-17T13:48:46Z\n      Finalizers:\n        olm.operatorframework.io/delete-server-cache\n      Generation:        1\n      Resource Version:  7908\n      UID:               34eeaa91-9f8e-4254-9937-0ae9d25e92df\n    Spec:\n      Availability Mode:  Available\n      Priority:  0\n      Source:\n        Image:\n          Ref:            quay.io/operatorhubio/catalog:latest\n        Type:             Image\n    Status:\n      Conditions:\n        Last Transition Time:  2024-10-17T13:48:59Z\n        Message:               Successfully unpacked and stored content from resolved source\n        Observed Generation:   1\n        Reason:                Succeeded\n        Status:                False\n        Type:                  Progressing\n        Last Transition Time:  2024-10-17T13:48:59Z\n        Message:               Serving desired content from resolved source\n        Observed Generation:   1\n        Reason:                Available\n        Status:                True\n        Type:                  Serving\n      Last Unpacked:           2024-10-17T13:48:58Z\n      Resolved Source:\n        Image:\n          Last Successful Poll Attempt:  2024-10-17T14:49:59Z\n          Ref:                           quay.io/operatorhubio/catalog@sha256:82be554b15ff246d8cc428f8d2f4cf5857c02ce3225d95d92a769ea3095e1fc7\n        Type:                            Image\n      Urls:\n        Base:  https://catalogd-service.olmv1-system.svc/catalogs/operatorhubio\n    Events:    \u003cnone\u003e\n   ```\n\n1. Port forward the `catalogd-service` service in the `olmv1-system` namespace:\n    ```sh\n    $ kubectl -n olmv1-system port-forward svc/catalogd-service 8080:443\n    ```\n\n1. Access the `v1/all` service endpoint and filter the results to a list of packages by running the following command:\n\n    ```sh\n    $ curl https://localhost:8080/catalogs/operatorhubio/api/v1/all | jq -s '.[] | select(.schema == \"olm.package\") | .name'\n    ```\n\n    *Example output*\n    ```sh\n      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                    Dload  Upload   Total   Spent    Left  Speed\n    100  110M  100  110M    0     0   112M      0 --:--:-- --:--:-- --:--:--  112M\n    \"ack-acm-controller\"\n    \"ack-apigatewayv2-controller\"\n    \"ack-applicationautoscaling-controller\"\n    \"ack-cloudtrail-controller\"\n    \"ack-cloudwatch-controller\"\n    \"ack-dynamodb-controller\"\n    \"ack-ec2-controller\"\n    \"ack-ecr-controller\"\n    \"ack-eks-controller\"\n    \"ack-elasticache-controller\"\n    \"ack-emrcontainers-controller\"\n    \"ack-eventbridge-controller\"\n    \"ack-iam-controller\"\n    \"ack-kinesis-controller\"\n    ...\n    ```\n1. Run the following command to get a list of channels for the `ack-acm-controller` package:\n\n    ```sh\n    $ curl https://localhost:8080/catalogs/operatorhubio/api/v1/all | jq -s '.[] | select(.schema == \"olm.channel\") | select(.package == \"ack-acm-controller\") | .name'\n    ```\n\n    *Example output*\n    ```sh\n      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                    Dload  Upload   Total   Spent    Left  Speed\n    100  110M  100  110M    0     0   115M      0 --:--:-- --:--:-- --:--:--  116M\n    \"alpha\"\n    ```\n\n1. Run the following command to get a list of bundles belonging to the `ack-acm-controller` package:\n\n    ```sh\n    $ curl https://localhost:8080/catalogs/operatorhubio/api/v1/all | jq -s '.[] | select(.schema == \"olm.bundle\") | select(.package == \"ack-acm-controller\") | .name'\n    ```\n    \n    *Example output*\n    ```sh\n      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                    Dload  Upload   Total   Spent    Left  Speed\n    100  110M  100  110M    0     0   122M      0 --:--:-- --:--:-- --:--:--  122M\n    \"ack-acm-controller.v0.0.1\"\n    \"ack-acm-controller.v0.0.2\"\n    \"ack-acm-controller.v0.0.4\"\n    \"ack-acm-controller.v0.0.5\"\n    \"ack-acm-controller.v0.0.6\"\n    \"ack-acm-controller.v0.0.7\"\n    ```\n\n## Contributing\nThanks for your interest in contributing to `catalogd`!\n\n`catalogd` is in the very early stages of development and a more in depth contributing guide will come in the near future.\n\nIn the meantime, it is assumed you know how to make contributions to open source projects in general and this guide will only focus on how to manually test your changes (no automated testing yet).\n\nIf you have any questions, feel free to reach out to us on the Kubernetes Slack channel [#olm-dev](https://kubernetes.slack.com/archives/C0181L6JYQ2) or [create an issue](https://github.com/operator-framework/catalogd/issues/new)\n### Testing Local Changes\n**Prerequisites**\n- [Install kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)\n\n**Test it out**\n\n```sh\nmake run\n```\n\nThis will build a local container image for the catalogd controller, create a new KIND cluster and then deploy onto that cluster.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperator-framework%2Fcatalogd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperator-framework%2Fcatalogd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperator-framework%2Fcatalogd/lists"}