Kubernetes operator for orchestrating Teranode blockchain infrastructure
| CIΒ /Β CD | QualityΒ &Β Security | DocsΒ &Β Meta | Community |
|---|---|---|---|
|
|
|
|
|
- Installation
- Documentation
- Examples & Tests
- Benchmarks
- Code Standards
- AI Compliance
- Maintainers
- Contributing
- License
See helm installation guide for details.
Once you have the operator installed, modify config/samples/teranode_v1alpha1_node.yaml with your needed configuration values, then create the instance in the cluster:
$ kubectl create config/samples/teranode_v1alpha1_cluster.yamlThis step assumes you have created a prerequisite configmap and specified it on the above CR.
This will create the associated services, and you should see something like:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
asset-5cc5745c75-6m5gf 1/1 Running 0 3d11h
asset-5cc5745c75-84p58 1/1 Running 0 3d11h
block-assembly-649dfd8596-k8q29 1/1 Running 0 3d11h
block-assembly-649dfd8596-njdgn 1/1 Running 0 3d11h
block-persister-57784567d6-tdln7 1/1 Running 0 3d11h
block-persister-57784567d6-wdx84 1/1 Running 0 3d11h
block-validator-6c4bf46f8b-bvxmm 1/1 Running 0 3d11h
blockchain-ccbbd894c-k95z9 1/1 Running 0 3d11h
miner-6b454ff67c-jsrgv 1/1 Running 0 3d11h
peer-6845bc4749-24ms4 1/1 Running 0 3d11h
propagation-648cd4cc56-cw5bp 1/1 Running 0 3d11h
propagation-648cd4cc56-sllxb 1/1 Running 0 3d11h
subtree-validator-7879f559d5-9gg9c 1/1 Running 0 3d11h
subtree-validator-7879f559d5-x2dd4 1/1 Running 0 3d11h
teranode-operator-controller-manager-768f498c4d-mk49k 2/2 Running 0 3d11hThis operator controls the management of each microservice associated with a Teranode cluster. It currently supports deployment via bundle.
- go version v1.20.0+
- docker version 17.03+.
- kubectl version v1.11.3+.
- Access to a Kubernetes v1.11.3+ cluster.
Deploy on the cluster
Runs controller manager locally on your machine
make runBuild and push your image to the location specified by IMG:
make docker-build docker-push IMG=<some-registry>/teranode-operator:tagNOTE: This image ought to be published in the personal registry you specified. And it is required to have access to pull the image from the working environment. Make sure you have the proper permission to the registry if the above commands donβt work.
Install the CRDs into the cluster:
make installDeploy the Manager to the cluster with the image specified by IMG:
make deploy IMG=<some-registry>/teranode-operator:tagNOTE: If you encounter RBAC errors, you may need to grant yourself cluster-admin privileges or be logged in as admin.
Create instances of your solution You can apply the samples (examples) from the config/sample:
kubectl apply -k config/samples/NOTE: Ensure that the samples has default values to test it out.
Uninstall
Delete the instances (CRs) from the cluster:
kubectl delete -k config/samples/Delete the APIs(CRDs) from the cluster:
make uninstallUnDeploy the controller from the cluster:
make undeployLibrary Deployment
This project uses goreleaser for streamlined binary and library deployment to GitHub. To get started, install it via:
brew install goreleaserThe release process is defined in the .goreleaser.yml configuration file.
Then create and push a new Git tag using:
magex version:bump push=true bump=patch branch=masterThis process ensures consistent, repeatable releases with properly versioned artifacts and citation metadata.
Pre-commit Hooks
Set up the Go-Pre-commit System to run the same formatting, linting, and tests defined in AGENTS.md before every commit:
go install github.com/mrz1836/go-pre-commit/cmd/go-pre-commit@latest
go-pre-commit installThe system is configured via .env.base and can be customized using also using .env.custom and provides 17x faster execution than traditional Python-based pre-commit hooks. See the complete documentation for details.
All unit tests and examples run via GitHub Actions and use Go version 1.25.x.
Run all tests (fast):
make test(Coming Soon!)
Read more about this Go project's code standards.
This project documents expectations for AI assistants using a few dedicated files:
- AGENTS.md β canonical rules for coding style, workflows, and pull requests used by Codex.
- CLAUDE.md β quick checklist for the Claude agent.
- .cursorrules β machine-readable subset of the policies for Cursor and similar tools.
- sweep.yaml β rules for Sweep, a tool for code review and pull request management.
Edit AGENTS.md first when adjusting these policies, and keep the other files in sync within the same pull request.
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| Siggi | Dylan | Oli | MrZ |
View the contributing guidelines and please follow the code of conduct.
All kinds of contributions are welcome π! The most basic way to show your support is to star π the project, or to raise issues π¬.



