{"id":28545531,"url":"https://github.com/crate/crate-operator","last_synced_at":"2026-02-25T16:00:45.379Z","repository":{"id":36952192,"uuid":"263609668","full_name":"crate/crate-operator","owner":"crate","description":"The CrateDB Kubernetes Operator provides a convenient way to run CrateDB clusters inside Kubernetes.","archived":false,"fork":false,"pushed_at":"2026-02-18T10:00:02.000Z","size":1263,"stargazers_count":27,"open_issues_count":6,"forks_count":9,"subscribers_count":18,"default_branch":"master","last_synced_at":"2026-02-18T14:48:37.168Z","etag":null,"topics":["cratedb","database","hacktoberfest","kopf","kubernetes","operator"],"latest_commit_sha":null,"homepage":"https://crate.io","language":"Python","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/crate.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.rst","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-13T11:26:06.000Z","updated_at":"2026-02-17T08:30:53.000Z","dependencies_parsed_at":"2026-02-18T12:01:55.635Z","dependency_job_id":null,"html_url":"https://github.com/crate/crate-operator","commit_stats":null,"previous_names":[],"tags_count":206,"template":false,"template_full_name":null,"purl":"pkg:github/crate/crate-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcrate-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcrate-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcrate-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcrate-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crate","download_url":"https://codeload.github.com/crate/crate-operator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crate%2Fcrate-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29829408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T15:41:19.027Z","status":"ssl_error","status_checked_at":"2026-02-25T15:40:47.150Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cratedb","database","hacktoberfest","kopf","kubernetes","operator"],"created_at":"2025-06-09T23:08:00.374Z","updated_at":"2026-02-25T16:00:45.365Z","avatar_url":"https://github.com/crate.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://github.com/crate/crate-operator/workflows/CI/badge.svg\n   :alt: Continuous Integration\n   :target: https://github.com/crate/crate-operator\n\n.. image:: https://github.com/crate/crate-operator/workflows/Build%20and%20publish%20Docker%20Image/badge.svg\n   :alt: Docker Build\n   :target: https://github.com/crate/crate-operator\n\n.. image:: https://img.shields.io/badge/docs-latest-brightgreen.svg\n   :alt: Documentation\n   :target: https://crate-operator.readthedocs.io/en/latest/\n\n.. image:: https://img.shields.io/badge/container-docker-green.svg\n   :alt: Docker Hub\n   :target: https://hub.docker.com/crate/crate-operator/\n\n\n=============================\n⚙️ CrateDB Kubernetes Operator\n=============================\n\nThe **CrateDB Kubernetes Operator** provides convenient way to run `CrateDB`_\nclusters inside `Kubernetes`_. It is built on top of the `Kopf: Kubernetes\nOperators Framework`_.\n\n🗒️ Contents\n==========\n\n- `🤹 Usage`_\n- `🎉 Features`_\n- `💽 Installation`_\n- `💻 Development`_\n\n🤹 Usage\n=======\n\nA minimal custom resource for a 3 node CrateDB cluster may look like this:\n\n``dev-cluster.yaml``:\n\n.. code-block:: yaml\n\n   apiVersion: cloud.crate.io/v1\n   kind: CrateDB\n   metadata:\n     name: my-cluster\n     namespace: dev\n   spec:\n     cluster:\n       imageRegistry: crate\n       name: crate-dev\n       version: 5.7.3\n     nodes:\n       data:\n       - name: hot\n         replicas: 3\n         resources:\n           limits:\n             cpu: 4\n             memory: 4Gi\n           disk:\n             count: 1\n             size: 128GiB\n             storageClass: default\n           heapRatio: 0.5\n\n.. code-block:: console\n\n   $ kubectl --namespace dev create -f dev-cluster.yaml\n   ...\n\n   $ kubectl --namespace dev get cratedbs\n   NAMESPACE   NAME         AGE\n   dev         my-cluster   36s\n\n\nPlease note that the minimum version of CrateDB that the operator supports is **4.5**.\nPrevious versions might work, but the operator will not attempt to set a license.\n\n\n🎉 Features\n===========\n\n- \"all equal nodes\" cluster setup\n- \"master + data nodes\" cluster setup\n- safe scaling of clusters\n- safe rolling version upgrades for clusters\n- SSL for HTTP and PG connections via Let's Encrypt certificate\n- custom node settings\n- custom cluster settings\n- custom storage classes\n- region/zone awareness for AWS and Azure\n- OpenShift support (Red Hat OpenShift Container Platform 4.x)\n\n💽 Installation\n===============\n\nInstallation with Helm\n----------------------\n\nTo be able to deploy the custom resource ``CrateDB`` to a Kubernetes cluster,\nthe API needs to be extended with a `Custom Resource Definition` (CRD).\nIt can be installed separately by installing the `CRD Helm Chart`_ or as a\ndependency of the `Operator Helm Chart`_.\n\n.. code-block:: console\n\n   helm repo add crate-operator https://crate.github.io/crate-operator\n   helm install crate-operator crate-operator/crate-operator\n\nTo override the environment variables from values.yaml, please refer to\nthe `configuration documentation`_.\n\nInstallation on OpenShift\n-------------------------\n\nWhen installing on Red Hat OpenShift Container Platform, additional configuration\nis required, after adding the Helm repo:\n\n.. code-block:: console\n\n   helm install crate-operator crate-operator/crate-operator \\\n      --set env.CRATEDB_OPERATOR_CLOUD_PROVIDER=openshift \\\n      --set env.CRATEDB_OPERATOR_CRATE_CONTROL_IMAGE=your-registry/crate-control:latest \\\n      --namespace crate-operator \\\n      --create-namespace\n\nReplace ``your-registry/crate-control:latest`` with the location of your built\ncrate-control sidecar image. See the `OpenShift documentation`_ for details.\n\nInstallation with kubectl\n-------------------------\n\nTo be able to deploy the custom resource ``CrateDB`` to a Kubernetes cluster,\nthe API needs to be extended with a `Custom Resource Definition` (CRD). The CRD\nfor ``CrateDB`` can be found in the ``deploy/`` folder and can be applied\n(assuming sufficient privileges).\n\n.. code-block:: console\n\n   $ kubectl apply -f deploy/crd.yaml\n   customresourcedefinition.apiextensions.k8s.io/cratedbs.cloud.crate.io created\n\nOnce the CRD is installed, the operator itself can be deployed using a\n``Deployment`` in the ``crate-operator`` namespace.\n\n.. code-block:: console\n\n   $ kubectl create namespace crate-operator\n   ...\n   $ kubectl create -f deploy/rbac.yaml\n   ...\n   $ kubectl create -f deploy/deployment.yaml\n   ...\n\nPlease refer to the `configuration documentation`_ for further details.\n\n💻 Development\n=============\n\nPlease refer to the `Working on the operator`_ section of the documentation.\n\n\n.. _CrateDB: https://github.com/crate/crate\n.. _Custom Resource Definition: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/\n.. _Kubernetes: https://kubernetes.io/\n.. _`Kopf: Kubernetes Operators Framework`: https://kopf.readthedocs.io/en/latest/\n.. _configuration documentation: ./docs/source/configuration.rst\n.. _Working on the operator: ./docs/source/development.rst\n.. _CRD Helm Chart: ./deploy/charts/crate-operator-crds/README.md\n.. _Operator Helm Chart: ./deploy/charts/crate-operator/README.md\n.. _OpenShift documentation: ./docs/source/openshift.rst\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrate%2Fcrate-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrate%2Fcrate-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrate%2Fcrate-operator/lists"}