{"id":18510710,"url":"https://github.com/operator-framework/operator-controller","last_synced_at":"2025-04-09T04:33:22.273Z","repository":{"id":38243074,"uuid":"485538823","full_name":"operator-framework/operator-controller","owner":"operator-framework","description":"A new and improved management framework for extending Kubernetes with Operators","archived":false,"fork":false,"pushed_at":"2025-03-21T09:01:26.000Z","size":5967,"stargazers_count":114,"open_issues_count":176,"forks_count":61,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-25T05:03:10.307Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://operator-framework.github.io/operator-controller/","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","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-04-25T21:21:53.000Z","updated_at":"2025-03-21T22:10:25.000Z","dependencies_parsed_at":"2023-12-21T13:27:22.700Z","dependency_job_id":"4fedebba-2b39-4bb6-a557-829c87465d23","html_url":"https://github.com/operator-framework/operator-controller","commit_stats":{"total_commits":39,"total_committers":8,"mean_commits":4.875,"dds":0.6923076923076923,"last_synced_commit":"a252719a953c59063947977f88d8bdbcde96887f"},"previous_names":["timflannagan/platform-operators"],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Foperator-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Foperator-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Foperator-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Foperator-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/operator-framework","download_url":"https://codeload.github.com/operator-framework/operator-controller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980833,"owners_count":21027803,"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:38.422Z","updated_at":"2025-04-09T04:33:22.257Z","avatar_url":"https://github.com/operator-framework.png","language":"Go","readme":"# operator-controller\nThe operator-controller is the central component of Operator Lifecycle Manager (OLM) v1.\nIt extends Kubernetes with an API through which users can install extensions.\n\n## Overview\n\nOLM v1 is the follow-up to [OLM v0](https://github.com/operator-framework/operator-lifecycle-manager). Its purpose is to provide APIs, \ncontrollers, and tooling that support the packaging, distribution, and lifecycling of Kubernetes extensions. It aims to:\n\n- align with Kubernetes designs and user assumptions\n- provide secure, high-quality, and predictable user experiences centered around declarative GitOps concepts\n- give cluster admins the minimal necessary controls to build their desired cluster architectures and to have ultimate control\n\nOLM v1 consists of two different components:\n\n* operator-controller\n* catalogd\n\nFor a more complete overview of OLM v1 and how it differs from OLM v0, see our [overview](docs/project/olmv1_design_decisions.md).\n\n## Documentation\n\nThe documentation currently lives at [website](https://operator-framework.github.io/operator-controller/). The source of the documentation exists in this repository, see [docs directory](docs/).\n\n## Getting Started\n\nTo get started with OLM v1, please see our [Getting Started](https://operator-framework.github.io/operator-controller/getting-started/olmv1_getting_started/) documentation.\n\n## ClusterCatalog\n\n### Quickstart DEMO\n\n[![asciicast](https://asciinema.org/a/682344.svg)](https://asciinema.org/a/682344)\n\n### ClusterCatalog Quickstart Steps\n\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 get started with OLM v1, please see our [Getting Started](https://operator-framework.github.io/operator-controller/getting-started/olmv1_getting_started/) documentation.\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## License\n\nCopyright 2022-2024.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperator-framework%2Foperator-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperator-framework%2Foperator-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperator-framework%2Foperator-controller/lists"}