01cloud-core is the control-plane worker service that bridges the 01cloud API and Kubernetes clusters. It consumes asynchronous queue messages, executes Kubernetes/Helm operations, and publishes status/events back to the platform.
- Queue-driven execution with pluggable backends (Google Pub/Sub or RabbitMQ)
- Kubernetes environment lifecycle management (create, upgrade, rollback, destroy)
- Helm release orchestration for environments and operator apps
- Add-on, storage, load balancer, init-container, and cron-job handlers
- WebSocket status/event emission to API clients
- Built-in developer quality gates (pre-commit, linting, tests, secret scanning)
- Go 1.23+
- Docker
kubectlpre-commit(recommended)trivy(recommended)
git clone https://github.com/berrybytes/01cloud-core.git
cd 01cloud-core
cp .env.sample .env
pre-commit installRun locally:
make run-devRun tests with coverage:
make test-devBuild container image:
make buildCopy .env.sample to .env and configure values for your environment.
| Variable | Required | Description |
|---|---|---|
GCLOUD_PROJECT |
Yes (Pub/Sub mode) | GCP project used by Pub/Sub client |
GCLOUD_NAMESPACE |
Yes | Prefix/namespace for queue topics/subscriptions |
HOST_NAME |
Yes | Service host binding |
API_SERVER |
Yes | API/WebSocket server URL |
API_SECRET |
Yes | JWT/shared secret used for authenticated API/WebSocket calls |
MESSAGE_TYPE |
No | Queue backend: pubsub (default) or rabbitmq |
RABBITMQ_URL |
Yes (RabbitMQ mode) | RabbitMQ connection URL |
BUGSNAG_KEY |
No | Bugsnag API key |
ZONE_NAME |
No | Deployment zone label |
TLS |
No | TLS secret/certificate reference |
Useful commands:
| Command | Description |
|---|---|
make test-dev |
Run Go tests with coverage |
make lint |
Run lint stage in Docker |
make test |
Run Docker test stage |
make qa |
Run format checks, tests, vet, and lint |
pre-commit run --all-files |
Run all pre-commit checks |
Please read CONTRIBUTING.md before submitting changes.
To report vulnerabilities, see SECURITY.md.
This repository currently includes the Apache 2.0 license text in LICENSE. If you plan to relicense, update this file before public release.