gigapi-operator

module
v0.0.0-...-f90a985 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 1, 2025 License: Apache-2.0

README

GigAPI Kubernetes Operator

A Kubernetes Operator for managing GigAPI clusters on Kubernetes.

Overview

The 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.

Features

  • Declarative management of GigAPI clusters via CRD
  • Automated StatefulSet, Service, PVC, ConfigMap, and Secret management
  • Optional Redis deployment for distributed metadata
  • Flexible configuration via environment variables
  • Supports rolling updates and scaling

CRD Spec Summary

The GigAPI custom resource supports:

  • server/querier: Replica count, resource requests/limits
  • storage: Size, storage class, access modes
  • config: All GigAPI environment variables (see below)
  • service: Service type and ports
  • deployRedis: Optionally deploy Redis for metadata

See config/samples/gigapi_v1alpha1_gigapi.yaml for a full example.

Quickstart (Development)

Prerequisites
  • Go (>=1.21)
  • kubebuilder
  • Docker
  • Access to a Kubernetes cluster (kind, minikube, or real cluster)
1. Install CRDs
make install
2. Run the Operator Locally
make run
3. Apply a Sample GigAPI Resource
kubectl apply -f config/samples/gigapi_v1alpha1_gigapi.yaml
4. Verify Resources
kubectl get gigapi
kubectl get statefulsets,pods,svc,pvc,configmap,secrets

You should see StatefulSets, Services, PVC, ConfigMap, and Secret for your GigAPI cluster, and Redis if enabled.

Deploying in Cluster

To build and deploy the operator in your cluster:

make docker-build docker-push IMG=<your-repo>/gigapi-operator:latest
make deploy IMG=<your-repo>/gigapi-operator:latest

Configuration Reference

All GigAPI environment variables are supported via the config field in the CRD:

  • 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

Troubleshooting

  • Check operator logs: make run or kubectl logs deployment/gigapi-operator-controller-manager -n gigapi-operator-system
  • Ensure your cluster has a default StorageClass for PVCs
  • If Redis is enabled, check for the Redis StatefulSet and Service

Next Steps

  • Add status reporting and health checks
  • Tune resource templates for production
  • Contribute improvements via PRs!

Resources


This project is under active development. Feedback and contributions welcome!

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the gigapi v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the gigapi v1alpha1 API group.
internal
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL