Update Namespace
Updates a namespace's display name and default limits. Platform admins additionally set quotas, internal targets and image pull secrets (full replace — quotas are written as sent, 0 meaning unlimited) and may adopt or transfer ownership via owner_team. For everyone else those fields must be empty/zero or equal to the stored values, otherwise PermissionDenied. Re-reconciles the runner namespace afterwards.
Access: admin role in the namespace (the owning team's admins, or an ADMIN-role namespace API key), or a platform admin. Other callers get NotFound.
Authorization
BearerAuth A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC
token for humans. The key's namespace and role are pinned server-side.
In: header
Header Parameters
Define the version of the Connect protocol
Define the timeout, in ms
Request Body
application/json
1 <= length <= 64length <= 4096validate:skip deprecated and ignored by the server
Platform admins: written as sent (0 = unlimited). Team admins: 0 or the stored value, which preserves it. validate:skip 0 is meaningful (unlimited / preserve); no ceiling
validate:skip as quota_cpu_millis
validate:skip as quota_cpu_millis
full replace; platform-admin-only to change
items <= 1000full replace; platform-admin-only to change
items <= 1000Adopt/transfer: platform admins only. Empty preserves the stored owner; non-admin callers must leave this empty (a differing value is rejected).
length <= 255validate:skip as quota_cpu_millis
validate:skip as quota_cpu_millis
Response Body
application/json
application/json
curl -X POST "https://containers.xeonr.io/containers.api.v1.NamespaceService/UpdateNamespace" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/json" \ -d '{}'{
"namespace": {
"namespace": "string",
"displayName": "string",
"k8sRunnerNamespace": "string",
"groups": [
{
"oidcGroup": "string",
"role": "ROLE_UNSPECIFIED"
}
],
"defaultLimits": {
"cpuMillis": 0,
"memoryMb": 0,
"ephemeralMb": 0,
"pids": 0
},
"quotaCpuMillis": 0,
"quotaMemoryMb": 0,
"quotaMaxPods": 0,
"quotaStorageMb": 0,
"quotaMaxVolumes": 0,
"internalTargets": [
{
"host": "string",
"port": 1
}
],
"imagePullSecrets": [
"string"
],
"ownerTeam": "string",
"clusterId": "string",
"move": {
"state": "STATE_UNSPECIFIED",
"sourceClusterId": "string",
"targetClusterId": "string",
"startedAt": "2023-01-15T01:30:15.01Z",
"updatedAt": "2023-01-15T01:30:15.01Z",
"finishedAt": "2023-01-15T01:30:15.01Z",
"message": "string",
"rolledBack": true,
"estimatedDowntimeSec": 0,
"volumes": [
{
"volumeId": "string",
"archiveSnapshotId": "string",
"sourceNode": "string",
"sourceState": "VOLUME_STATE_UNSPECIFIED",
"reseeded": true
}
],
"startedBy": "string"
}
}
}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Revoke API Key POST
Revokes an API key; it is refused within 30 seconds. The key stays in Xeonr Auth's audit trail. Authorisation is checked against the key's own namespace, not anything in the request. `key_id` is the URN ListApiKeys returns; a key id from before keys moved to Xeonr Auth is NotFound. **Access:** admin role in the key's namespace, or a platform admin. Other callers get NotFound.
Warm Pools
Warm pools — pre-warmed, identity-free, single-shot pods claimed per lane.