Hive mind for your deploys. Because YOLO deploys aren't cute in production.
Before anything goes live, you see a diff of what's changing.
Go to https://beecd.galleybytes.com and create an account. After that, log in at your tenant URL (e.g., https://acme.beecd.galleybytes.com).
Before connecting clusters, configure your GitHub token so BeeCD can fetch manifests from your repositories.
- Go to Settings
- Under GitHub Token, enter your GitHub Personal Access Token (needs
reposcope) - Click Save
BeeCD deploys to existing Kubernetes clusters. Connect one by installing the BeeCD agent.
- Go to Clusters -> Add Cluster
- Give it a name and click Create
- Click Generate Manifest to get the agent installation YAML
- Apply it to your Kubernetes cluster:
kubectl apply -f agent.yamlOnce the agent connects, you'll see a heartbeat timestamp under Clusters.
- Go to Repositories -> Add Repository
- Enter the GitHub repository URL (e.g.,
https://github.com/your-org/manifests) - Click Save
A branch tells BeeCD which git branch to watch. A service defines what manifests to deploy.
-
Click on your repository
-
Click Add Branch and enter the branch name (e.g.,
main) -
Click Add Service and fill in:
- Name: A lowercase identifier (e.g.,
my-app) - Manifest Path Template: Where to find manifests. Use placeholders
{cluster},{namespace}, and{service}.
Examples:
k8s/{cluster}/{namespace}/{service}/- Directory per cluster/namespace/service{cluster}/{namespace}/{service}.yaml- Single file per service
- Name: A lowercase identifier (e.g.,
-
Click Save
Cluster Groups connect services to clusters. Services are assigned to groups, and clusters in that group can deploy those services.
- Go to Cluster Groups -> Add Group
- Name it (e.g.,
production) and click Create - Click on the group
- Click Add Clusters and select your cluster
- Click Add Services and select your service
Label a namespace in your Kubernetes cluster so BeeCD knows it can manage deployments there:
kubectl label namespace my-namespace beecd.io/enabled=trueThe namespace will appear in Hive HQ within 60 seconds under Clusters -> your cluster.
- Go to Clusters -> your cluster
- Find the namespace and click the edit icon
- Select the services you want to deploy (only services from cluster groups this cluster belongs to will appear)
- Click Add
Each release needs a git commit to deploy. Create a version:
- Go to Clusters -> your cluster -> Releases
- Click on a release
- Click Versions -> Add Manual Version
- Enter a version tag (e.g.,
v1.0.0) and the git commit SHA - Click Create Version
BeeCD will fetch the manifests from that commit.
- Go to Releases
- Click on the pending release
- Review the Diff to see what will be applied
- Click Approve
The manifests will deploy to your cluster. Verify with:
kubectl get all -n my-namespace| Term | Description |
|---|---|
| Cluster | A Kubernetes cluster connected via the BeeCD agent |
| Cluster Group | A collection of clusters that share the same services |
| Service | A deployable unit defined by a manifest path in a git repository |
| Release | A service deployed to a specific namespace in a cluster |
| Version | A git commit SHA that a release should deploy |
- Submit an issue on GitHub: https://github.com/galleybytes/beecd/issues
- Verify your GitHub token has access to the repository
- Ensure the agent is running:
kubectl get pods -n beecd - Check agent logs:
kubectl logs -n beecd -l app=beecd-agent