Host Groups
A host group is a set of one or more wasmCloud host pods that run your Wasm workloads. Every Cosmonic Control installation needs at least one host group. Each pod runs a wasmCloud host that connects to Control's nexus NATS service and registers itself as available for workload scheduling.
Host groups are deployed with the cosmonic-control-hostgroup Helm chart — not as a Kubernetes custom resource. There is no HostGroup CRD to kubectl apply; you install, scale, and configure a host group entirely through Helm values. (An earlier k8s.cosmonic.io HostGroup CRD was removed from Cosmonic Control in favor of this chart.)
Host groups and hosts
Each pod a host group creates runs one wasmCloud host, represented in the cluster by the Host resource (runtime.wasmcloud.dev/v1alpha1). A host group is therefore a horizontally scalable Deployment of hosts that share the same configuration and serve the same kind of workloads. Cosmonic Control load-balances workloads across all available hosts in a group (round-robin) and redistributes them if a host crashes.
Components scheduled onto the same host pod remain sandbox-isolated from one another — there is no shared memory or direct call path between components in different namespaces unless an explicit link is declared.
Scheduling and labels
A host group carries a name and an optional environment and labels that the scheduler uses to place workloads:
hostgroup— the group's name, reported by every host in the group (as thecosmonic.io/hostgrouplabel) and used in scheduling decisions. Use a distinct name for each different type of host.environment— hosts only run workloads fromHTTPTriggers (and other resources) whosespec.environmentmatches. When empty, the host reads its environment from the pod (defaulting to the pod's namespace). A trigger with noenvironmentis left unpinned and may land on any host, including a shared group.
To confine a tenant's workloads to a specific group, set HTTPTrigger.spec.environment — or a WorkloadDeployment hostSelector matching the group's hostgroup name — accordingly. See Multitenancy for the full isolation model.
Key chart values
| Value | Default | Purpose |
|---|---|---|
hostgroup | default | Group name used in scheduling decisions |
environment | "" (pod namespace) | Restricts which triggers schedule onto this group |
replicaCount | 1 | Number of host pods; scale horizontally |
controlNamespace | cosmonic-system | Namespace where Cosmonic Control is installed |
nexus.url | "" (templated) | NATS control-plane connection to Nexus |
gpu | false | Passes --wasi-webgpu so workloads can call wasi:webgpu |
resources | 250m CPU request, 512Mi memory limit | Per-pod requests and limits |
Install
helm install hostgroup oci://ghcr.io/cosmonic/cosmonic-control-hostgroup \
--version 0.8.1 \
--namespace cosmonic-systemWait for it to be ready:
kubectl rollout status deploy -l app.kubernetes.io/instance=hostgroup -n cosmonic-systemFor the full value reference and operational procedures — scaling, running multiple groups, and GPU groups — see Installing HostGroups in the Operator Manual.