Configuration and deployment manifests for Beekeeper — the tool used to operate, validate, and exercise Bee clusters on Kubernetes.
This repo serves two purposes:
config/— Beekeeper YAML configs describing clusters, nodes, and the checks/loads/smokes/simulations that run against them.deployments/— Helm values files that deploy Beekeeper into Kubernetes as Jobs or CronJobs against those clusters.
Beekeeper running in-cluster pulls these configs from this repo at runtime (--config-git-repo), so a change merged here ships to the next scheduled run.
config/ # Beekeeper configs — one file per environment (cluster definition + checks)
deployments/ # Helm values for deploying Beekeeper jobs into K8s
check/ # functional check jobs (pingpong, pushsync, manifest, pss, ...)
smoke/ # long-running smoke tests
load/ # load-generation jobs
node-funder/ # funds node addresses with ETH/BZZ
stamper/ # keeps postage stamps topped up
mainnet/ # mainnet-specific jobs (SLA checks, dev-bee-perf, private bee, ...)
testnet/ # testnet helpers
debug/ # ad-hoc debug pods
Each environment has a matching pair — e.g. config/bee-base.yaml is consumed by deployments/{check,smoke,load}/beekeeper-*-bee-base.yaml.
Today the repo targets:
| Cluster | Config file | Used by |
|---|---|---|
bee-testnet |
config/bee-testnet.yaml |
public testnet checks / smoke / load |
bee-light-testnet |
config/bee-light-testnet.yaml |
light-mode testnet |
bee-base |
config/bee-base.yaml |
base cluster (Sepolia) |
bee-playground |
config/bee-playground.yaml |
scratch / experiments |
mainnet-sla |
config/mainnet-sla.yml |
mainnet SLA monitoring |
mainnet-dev-bee-* |
config/mainnet-dev-bee-*.yaml |
dev mainnet performance / cheq tests |
dev-mainnet |
config/dev-mainnet.yaml |
private-bee tooling |
All deployments use the ethersphere/beekeeper Helm chart. From a target subdirectory:
helm repo add ethersphere https://ethersphere.github.io/helm
helm repo update
# install (or upgrade) a job
helm upgrade --install beekeeper-bee-base-checks ethersphere/beekeeper \
--namespace beekeeper \
-f deployments/check/beekeeper-check-bee-base.yamlTrigger a CronJob immediately instead of waiting for the schedule:
kubectl create job --from=cronjob/<name> <name>-immediate --namespace=beekeeperUninstall:
helm uninstall <release-name> --namespace=beekeeperEach deployments/<kind>/ directory has a README with the exact commands for the jobs in that folder.
Configs in config/ are grouped into these top-level blocks:
clusters— cluster definitions Beekeeper operates onnode-groups— groups of Bee nodes sharing the same Kubernetes settingsbee-configs— Bee node configuration that can be assigned to node-groupschecks— checks Beekeeper can run against a clustersimulations— simulations Beekeeper can run against a clusterstages— stages for dynamic execution of checks and simulations
Clusters, node-groups, and bee-configs support inheritance via _inherit:
bee-configs:
light-node:
_inherit: default
full-node: false # only this field overrides the inherited configChecks and simulations can be declared multiple times with different parameters by changing the key while reusing the type:
checks:
pushsync-chunks:
type: pushsync
options:
mode: chunks
upload-node-count: 1
# ...
pushsync-light-chunks:
type: pushsync
options:
mode: light-chunks
upload-node-count: 1
# ...A Beekeeper run then selects the variant with --checks=pushsync-chunks or --checks=pushsync-light-chunks.
- Drop a new file in
config/defining the cluster, its node-groups, bee-config, and the checks/smoke/load it should run. - Add the matching Helm values file in the relevant
deployments/<kind>/directory, pointing--cluster-nameand--checksat the new config and setting aschedule:. - Open a PR. Once merged on the branch referenced by the deployment (
--config-git-branch), the next CronJob run picks it up.