WorkerPool
API reference for Worker Pools (clrk.apoxy.dev/v1alpha1)
API Group: clrk.apoxy.dev/v1alpha1
Operations
List WorkerPool
GET/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools
List WorkerPool
Response
200: OK
List WorkerPool
GET/apis/clrk.apoxy.dev/v1alpha1/workerpools
List WorkerPool
Response
200: OK
Create WorkerPool
POST/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools
Create a WorkerPool
Request Body
Spec fields (WorkerPoolSpec):
| Field | Type | Description |
|---|---|---|
imageCache | ImageCacheConfig | ImageCache configures OCI image caching on worker nodes. |
maxExecutionsPerWorker | integer (int32) | MaxExecutionsPerWorker caps how many agent executions a single worker pod can host simultaneously. |
replicas | integer (int32) | Replicas is the desired number of worker pods. |
template | WorkerPodTemplate | Template is the curated worker-pod overlay. It exposes only the pod-spec knobs that are safe to tune; the gVisor/runsc-load-bearing fields (privileged + seccomp Unconfined + the AppArmor annotation, the run/state/varlog scratch volumes, the dispatch port, and the downward-API env) are owned by the controller's pod builder and are not expressible here, so a user edit cannot break the sandbox runtime. (required) |
warmPool | integer (int32) | WarmPool is the number of pre-spawned sandboxes to keep ready. |
Response
200: OK201: Created202: Accepted
Delete All WorkerPool
DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools
Delete collection of WorkerPool
Response
200: OK
Get WorkerPool
GET/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools/{name}
Get the specified WorkerPool
Response
200: OK
Replace WorkerPool
PUT/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools/{name}
Replace the specified WorkerPool
Request Body
Spec fields (WorkerPoolSpec):
| Field | Type | Description |
|---|---|---|
imageCache | ImageCacheConfig | ImageCache configures OCI image caching on worker nodes. |
maxExecutionsPerWorker | integer (int32) | MaxExecutionsPerWorker caps how many agent executions a single worker pod can host simultaneously. |
replicas | integer (int32) | Replicas is the desired number of worker pods. |
template | WorkerPodTemplate | Template is the curated worker-pod overlay. It exposes only the pod-spec knobs that are safe to tune; the gVisor/runsc-load-bearing fields (privileged + seccomp Unconfined + the AppArmor annotation, the run/state/varlog scratch volumes, the dispatch port, and the downward-API env) are owned by the controller's pod builder and are not expressible here, so a user edit cannot break the sandbox runtime. (required) |
warmPool | integer (int32) | WarmPool is the number of pre-spawned sandboxes to keep ready. |
Response
200: OK201: Created
Update WorkerPool
PATCH/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools/{name}
Partially update the specified WorkerPool
Response
200: OK201: Created
Delete WorkerPool
DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/workerpools/{name}
Delete a WorkerPool
Response
200: OK202: Accepted
Schema Reference
ImageCacheConfig
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enabled controls whether image caching is active. |
WorkerPodTemplate
| Field | Type | Description |
|---|---|---|
affinity | Affinity | Affinity is the worker pods' scheduling affinity. |
env | EnvVar[] | Env is additional environment for the worker container, appended after the fixed downward-API vars (POD_NAME, POD_NAMESPACE, CLRK_POOL_NAME). A var named POD_NAME/POD_NAMESPACE/CLRK_POOL_NAME is always dropped (the controller owns it). CLRK_CM_OTLP_ENDPOINT/CLRK_CM_NATS_ADDR are dropped only when the controller injects them (cm mode); in single-binary mode the controller injects nothing, so an operator-supplied value here is kept. |
extraVolumeMounts | VolumeMount[] | ExtraVolumeMounts are additional mounts on the worker container. Names colliding with a reserved volume, or mount paths overlapping a reserved runtime path, are rejected at admission. |
extraVolumes | Volume[] | ExtraVolumes are additional pod volumes. Names colliding with the reserved runtime volumes (state, run, varlog) are rejected at admission. |
image | string | Image is the worker container image. Required. It must be a clrk worker image (runsc + the sentrystack plugin); an arbitrary image will not boot the sandbox runtime. (required) |
imagePullPolicy | string | ImagePullPolicy for the worker container. Defaults to IfNotPresent. Possible enum values: - "Always" means that kubelet always attempts to pull the latest image. Container will fail If the pull fails. - "IfNotPresent" means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails. - "Never" means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present |
imagePullSecrets | LocalObjectReference[] | ImagePullSecrets are attached to the worker pod for pulling Image. |
nodeSelector | object | NodeSelector constrains worker pods to matching nodes. |
priorityClassName | string | PriorityClassName sets the worker pods' scheduling priority. |
resources | ResourceRequirements | Resources are the worker container's compute resource requests/limits. |
serviceAccountName | string | ServiceAccountName the worker pods run under. Defaults to clrk-worker. |
tolerations | Toleration[] | Tolerations let worker pods schedule onto tainted nodes. |
topologySpreadConstraints | TopologySpreadConstraint[] | TopologySpreadConstraints spread worker pods across failure domains. |
WorkerPodMeta
| Field | Type | Description |
|---|---|---|
annotations | object | Annotations are merged into the pod template; the AppArmor annotation wins on key collision. |
labels | object | Labels are merged into the pod template; the pool selector labels win on key collision. |