{"id":20834954,"url":"https://github.com/hstreamdb/hstream-operator","last_synced_at":"2025-05-08T02:23:37.474Z","repository":{"id":103106044,"uuid":"560219571","full_name":"hstreamdb/hstream-operator","owner":"hstreamdb","description":"A Kubernetes Operator for HStreamDB","archived":false,"fork":false,"pushed_at":"2024-05-21T03:52:18.000Z","size":11260,"stargazers_count":6,"open_issues_count":5,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-15T00:51:13.142Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/hstreamdb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-01T01:46:03.000Z","updated_at":"2024-01-29T11:15:23.000Z","dependencies_parsed_at":"2023-03-19T00:04:50.862Z","dependency_job_id":"f45a42c4-082a-4883-a94f-bb6f378cb2eb","html_url":"https://github.com/hstreamdb/hstream-operator","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstreamdb%2Fhstream-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstreamdb%2Fhstream-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstreamdb%2Fhstream-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstreamdb%2Fhstream-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hstreamdb","download_url":"https://codeload.github.com/hstreamdb/hstream-operator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252985077,"owners_count":21835917,"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-18T00:22:03.924Z","updated_at":"2025-05-08T02:23:37.428Z","avatar_url":"https://github.com/hstreamdb.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HStream Operator\n\n## Introduction\n\nHStream Operator is a Kubernetes operator designed to manage and maintain the HStreamDB cluster within a Kubernetes environment. The HStreamDB cluster comprises of several components including:\n\n- HMeta\n- AdminServer\n- [HServer](https://docs.hstream.io/reference/architecture/hserver.html)\n- [HStore](https://docs.hstream.io/reference/architecture/hstore.html)\n\nIt simplifies the deployment, scaling, and operations of HStreamDB clusters on Kubernetes, making it easier for users to manage their HStream components effectively. We use and get benefits from [kubebuilder](https://book.kubebuilder.io/) to simplify the development of the operator.\n\n## Installation\n\nWe recommend using the [Helm](https://helm.sh/) package manager to install the HStreamDB operator on your Kubernetes cluster.\n\n\u003e Currently, we haven't released the chart because of this operator is still at an early stage. So you\n\u003e need to clone this repo and install the chart from the local directory.\n\n```sh\ngit clone https://github.com/hstreamdb/hstream-operator.git \u0026\u0026 cd hstream-operator\nhelm install hstream-operator deploy/charts/hstream-operator -n hstream-operator-system --create-namespace\n```\n\nEvery releases will be published to [GitHub Releases](https://github.com/hstreamdb/hstream-operator/releases), you\ncan also install the operator with the following command:\n\n```sh\nkubectl create -f https://github.com/hstreamdb/hstream-operator/releases/download/0.0.9/hstream-operator.yaml\n```\n\n\u003e You can also use server-side apply to install the operator by running `kubectl apply --server-side`, please refer to\n\u003e [comparison-with-client-side-apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/#comparison-with-client-side-apply) for more details.\n\nReplace `0.0.9` with the version you want to install.\n\n### Check the status\n\nYou can check the status of the operator by running:\n\n```sh\nkubectl get pods -l \"control-plane=hstream-operator-manager\" -n hstream-operator-system\n```\n\nExpected output:\n\n```sh\nNAME                                                  READY   STATUS    RESTARTS      AGE\nhstream-operator-controller-manager-f989476d4-qllfs   1/1     Running   1 (16h ago)   16h\n```\n\n### Bootstrap a HStreamDB cluster\n\nAfter installing the operator, you can bootstrap a HStreamDB cluster by applying `config/samples/hstreamdb.yaml`:\n\n```sh\nkubectl apply -f config/samples/hstreamdb.yaml\n```\n\n\u003e Note: you need to provide `volumeClaimTemplate` which comments out in the sample file.\n\nYou can check the status of the HStreamDB cluster by running:\n\n```sh\nkubectl get po -n hstreamdb\n```\n\nExpected output:\n\n```sh\nNAME                                             READY   STATUS    RESTARTS   AGE\nhstreamdb-sample-hmeta-2                         1/1     Running   0          7m45s\nhstreamdb-sample-hmeta-0                         1/1     Running   0          7m45s\nhstreamdb-sample-hmeta-1                         1/1     Running   0          7m45s\nhstreamdb-sample-admin-server-6c547b85c7-7h9gw   1/1     Running   0          7m34s\nhstreamdb-sample-hstore-0                        1/1     Running   0          7m34s\nhstreamdb-sample-hstore-1                        1/1     Running   0          7m34s\nhstreamdb-sample-hstore-2                        1/1     Running   0          7m34s\nhstreamdb-sample-hserver-0                       1/1     Running   0          7m18s\nhstreamdb-sample-hserver-2                       1/1     Running   0          7m18s\nhstreamdb-sample-hserver-1                       1/1     Running   0          7m18s\n```\n\nAs a result, we have a HStreamDB cluster with 3 HMeta nodes, 3 HStore nodes, 3 HServer nodes, and 1 AdminServer node.\n\n## Testing in a local environment\n\nYou’ll need a Kubernetes cluster to run against. You can use [KIND](https://sigs.k8s.io/kind) to get a local cluster for testing, or run against a remote cluster.\n\n**Note:** Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster `kubectl cluster-info` shows).\n\n### Running on the cluster\n\n1. Build and push your image to the location specified by `IMG`:\n\n   ```sh\n   make docker-build docker-push IMG=\u003csome-registry\u003e/hstream-operator:tag\n   ```\n\n2. Deploy the controller to the cluster with the image specified by `IMG`:\n\n   ```sh\n   make deploy IMG=\u003csome-registry\u003e/hstream-operator:tag\n   ```\n\n### Uninstall CRDs\n\nTo delete the CRDs from the cluster:\n\n```sh\nmake uninstall\n```\n\n### Undeploy controller\n\nUnDeploy the controller from the cluster:\n\n```sh\nmake undeploy\n```\n\n## Contributing\n\n// TODO(user): Add detailed information on how you would like others to contribute to this project\n\n### How it works\n\nThis project aims to follow the Kubernetes [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/).\n\nIt uses [Controllers](https://kubernetes.io/docs/concepts/architecture/controller/),\nwhich provide a reconcile function responsible for synchronizing resources until the desired state is reached on the cluster.\n\n### Test it out\n\n1. Install the CRDs into the cluster:\n\n   ```sh\n   make install\n   ```\n\n2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):\n\n   ```sh\n   make run\n   ```\n\n**NOTE:** You can also run this in one step by running: `make install run`\n\n### Modifying the API definitions\n\nIf you are editing the API definitions, generate the manifests such as CRs or CRDs using:\n\n```sh\nmake manifests\n```\n\n**NOTE:** Run `make --help` for more information on all potential `make` targets\n\nMore information can be found via the [Kubebuilder Documentation](https://book.kubebuilder.io/introduction.html)\n\n## License\n\nLicensed under the Apache License, Version 2.0. See [LICENSE](./LICENSE) for full content.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhstreamdb%2Fhstream-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhstreamdb%2Fhstream-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhstreamdb%2Fhstream-operator/lists"}