Skip to content

Create your first fleet

Complete installation and give fleets/celld-runtime access to a new dedicated bucket. Choose actual zones in the bucket’s region. This example explicitly pins the published compatible fork; no runtime image default exists.

my-fleet.yaml
apiVersion: celld.eric.dev/v1alpha1
kind: CelldFleet
metadata:
name: my-fleet
namespace: fleets
spec:
profile: Bucket
bucketWorkload: Ordered
runtimeImage: ghcr.io/ewhauser/celld@sha256:1c0d854cd2af39fa439f163d5b88a19c7bccefd25fe35e2c0e1f43b3d886f424
replicas: 3
serviceAccountName: celld-runtime
storage:
bucket: YOUR_DEDICATED_BUCKET
region: YOUR_AWS_REGION
sizeGiB: 10
placement:
azCount: 3
zones: [YOUR_REGION_ZONE_A, YOUR_REGION_ZONE_B, YOUR_REGION_ZONE_C]
mode: Strict

Apply it to your explicit context:

Terminal window
kubectl --context YOUR_CONTEXT apply -f my-fleet.yaml
kubectl --context YOUR_CONTEXT -n fleets wait celldfleet/my-fleet --for=condition=InfrastructureReady=True --timeout=180s
kubectl --context YOUR_CONTEXT -n fleets rollout status statefulset/my-fleet --timeout=300s
kubectl --context YOUR_CONTEXT -n fleets get statefulset/my-fleet,service/my-fleet
kubectl --context YOUR_CONTEXT -n fleets get celldfleet my-fleet -o yaml

This Ordered Bucket fleet has temporary disks and runs celld directly; it contracts by highest ordinal and restarts one member at a time. The default Deployment layout lets Kubernetes choose each scale-in victim. Layout is immutable after creation.

Look for three ready replicas, Ready=True and Blocked=False. InfrastructureReady=True alone does not mean Pods have scheduled. See verification if the workload does not become ready.

The application Service uses port 8080. In-cluster clients need the label celld.eric.dev/client-of: my-fleet in the fleet namespace. Internal port 8081 stays private. Continue with your first application.

Experimental software for evaluation.Capabilities and limitations· Contribute