{"id":31648944,"url":"https://github.com/gigapi/gigapi-operator","last_synced_at":"2026-03-13T14:31:07.209Z","repository":{"id":296740181,"uuid":"994325999","full_name":"gigapi/gigapi-operator","owner":"gigapi","description":"WIP","archived":false,"fork":false,"pushed_at":"2025-06-01T18:04:40.000Z","size":60,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T07:07:34.260Z","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/gigapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-01T17:45:35.000Z","updated_at":"2025-06-03T12:14:10.000Z","dependencies_parsed_at":"2025-06-02T03:58:40.791Z","dependency_job_id":"ce6aae8d-4a37-4b4c-aaaf-dd5801d3c79b","html_url":"https://github.com/gigapi/gigapi-operator","commit_stats":null,"previous_names":["gigapi/gigapi-operator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gigapi/gigapi-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gigapi","download_url":"https://codeload.github.com/gigapi/gigapi-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigapi%2Fgigapi-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30468270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2025-10-07T07:02:02.743Z","updated_at":"2026-03-13T14:31:07.180Z","avatar_url":"https://github.com/gigapi.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://github.com/user-attachments/assets/5b0a4a37-ecab-4ca6-b955-1a2bbccad0b4\" /\u003e\n\n# \u003cimg src=\"https://github.com/user-attachments/assets/74a1fa93-5e7e-476d-93cb-be565eca4a59\" height=25 /\u003e GigAPI Kubernetes Operator\n\nA Kubernetes Operator for managing [GigAPI](https://github.com/gigapi/gigapi) clusters on Kubernetes.\n\n## Overview\n\nThe GigAPI Operator automates the deployment and management of GigAPI server and querier components, including persistent storage, configuration, and optional Redis metadata support. It ensures your GigAPI cluster is always running according to your desired spec.\n\n## Features\n- Declarative management of GigAPI clusters via CRD\n- Automated StatefulSet, Service, PVC, ConfigMap, and Secret management\n- Optional Redis deployment for distributed metadata\n- Flexible configuration via environment variables\n- Supports rolling updates and scaling\n\n## CRD Spec Summary\nThe `GigAPI` custom resource supports:\n- **server/querier**: Replica count, resource requests/limits\n- **storage**: Size, storage class, access modes\n- **config**: All GigAPI environment variables (see below)\n- **service**: Service type and ports\n- **deployRedis**: Optionally deploy Redis for metadata\n\nSee [`config/samples/gigapi_v1alpha1_gigapi.yaml`](config/samples/gigapi_v1alpha1_gigapi.yaml) for a full example.\n\n## Quickstart (Development)\n\n### Prerequisites\n- [Go](https://golang.org/dl/) (\u003e=1.21)\n- [kubebuilder](https://book.kubebuilder.io/quick-start.html#installation)\n- [Docker](https://www.docker.com/)\n- Access to a Kubernetes cluster (kind, minikube, or real cluster)\n\n### 1. Install CRDs\n```sh\nmake install\n```\n\n### 2. Run the Operator Locally\n```sh\nmake run\n```\n\n### 3. Apply a Sample GigAPI Resource\n```sh\nkubectl apply -f config/samples/gigapi_v1alpha1_gigapi.yaml\n```\n\n### 4. Verify Resources\n```sh\nkubectl get gigapi\nkubectl get statefulsets,pods,svc,pvc,configmap,secrets\n```\n\nYou should see StatefulSets, Services, PVC, ConfigMap, and Secret for your GigAPI cluster, and Redis if enabled.\n\n## Deploying in Cluster\nTo build and deploy the operator in your cluster:\n```sh\nmake docker-build docker-push IMG=\u003cyour-repo\u003e/gigapi-operator:latest\nmake deploy IMG=\u003cyour-repo\u003e/gigapi-operator:latest\n```\n\n## Configuration Reference\nAll [GigAPI environment variables](https://github.com/gigapi/gigapi#settings) are supported via the `config` field in the CRD:\n- `GIGAPI_ROOT`, `GIGAPI_MERGE_TIMEOUT_S`, `GIGAPI_SAVE_TIMEOUT_S`, `GIGAPI_NO_MERGES`, `GIGAPI_UI`, `GIGAPI_MODE`, `GIGAPI_METADATA_TYPE`, `GIGAPI_METADATA_URL`, `HTTP_PORT`, `HTTP_HOST`, `HTTP_BASIC_AUTH_USERNAME`, `HTTP_BASIC_AUTH_PASSWORD`, `FLIGHTSQL_PORT`, `FLIGHTSQL_ENABLE`, `LOGLEVEL`, `DUCKDB_MEM_LIMIT`, `DUCKDB_THREAD_LIMIT`\n\n## Troubleshooting\n- Check operator logs: `make run` or `kubectl logs deployment/gigapi-operator-controller-manager -n gigapi-operator-system`\n- Ensure your cluster has a default StorageClass for PVCs\n- If Redis is enabled, check for the Redis StatefulSet and Service\n\n## Next Steps\n- Add status reporting and health checks\n- Tune resource templates for production\n- Contribute improvements via PRs!\n\n## Resources\n- [GigAPI Project](https://github.com/gigapi/gigapi)\n- [Kubebuilder Book](https://book.kubebuilder.io/)\n\n---\n\n_This project is under active development. Feedback and contributions welcome!_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigapi%2Fgigapi-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgigapi%2Fgigapi-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigapi%2Fgigapi-operator/lists"}