Skip to content

List or watch apps

GET
/apis/nodus.dev/v1/namespaces/{namespace}/apps
curl --request GET \
--url https://example.com/apis/nodus.dev/v1/namespaces/example/apps
namespace
required
string

The project.

labelSelector
string
fieldSelector
string
limit
string
continue
string
watch
string
resourceVersion
string
allowWatchBookmarks
string
timeoutSeconds
string

OK

Media type application/json
object
apiVersion
string
items
required
Array<object>

App is the group of Functions and Agents defined in one Python file. nodus deploy creates or updates a persistent App; nodus run creates an ephemeral one that is deleted when the entrypoint exits. Members are owned by the App, labeled nodus.dev/app, and named -.

object
apiVersion
string
kind
string
metadata
object
annotations
object
key
additional properties
string
creationTimestamp
string
deletionGracePeriodSeconds
integer format: int64
deletionTimestamp
string
finalizers
Array<string>
nullable
generateName
string
generation
integer format: int64
labels
object
key
additional properties
string
managedFields
Array<object>
nullable
object
apiVersion
string
fieldsType
string
fieldsV1
object
key
additional properties
manager
string
operation
string
subresource
string
time
string
name
string
namespace
string
ownerReferences
Array<object>
nullable
object
apiVersion
required
string
blockOwnerDeletion
boolean
controller
boolean
kind
required
string
name
required
string
uid
required
string
resourceVersion
string
selfLink
string
uid
string
spec

AppSpec describes an App. Ephemeral is immutable; the rest changes on each deploy.

object
description

Description is a note of at most 1 KiB.

string
ephemeral

Ephemeral makes the App live only as long as its client renews it.

boolean
renewTime

RenewTime is when an ephemeral App was last renewed. The client renews it every 30 s, and the App is deleted when it is older than 2 minutes.

string
source

AppSource is the code of an App.

object
blob

Blob is the content-addressed code archive.

string
status

AppStatus is what Nodus observed about an App.

object
conditions

Conditions are the App’s conditions.

Array<object>
nullable
object
lastTransitionTime
required
string
message
required
string
observedGeneration
integer format: int64
reason
required
string
status
required
string
type
required
string
deployTime

DeployTime is when the App was last deployed.

string
members

AppMembers is status.members.

object
agents
required

Agents counts the App’s Agents.

integer format: int32
functions
required

Functions counts the App’s Functions.

integer format: int32
ready
required

Ready counts the members that accept work.

integer format: int32
message

Message explains a Failed phase, naming the member.

string
observedGeneration

ObservedGeneration is the spec generation this status reflects.

integer format: int64
phase

Phase is Pending while members are not ready, Ready, or Failed when a member failed.

string
version

Version increments on each deploy.

integer format: int64
kind
string
metadata
object
continue
string
remainingItemCount
integer format: int64
resourceVersion
string
selfLink
string
shardInfo
object
selector
required
string
Example generated
{
"apiVersion": "example",
"items": [
{
"apiVersion": "example",
"kind": "example",
"metadata": {
"annotations": {
"additionalProperty": "example"
},
"creationTimestamp": "example",
"deletionGracePeriodSeconds": 1,
"deletionTimestamp": "example",
"finalizers": [
"example"
],
"generateName": "example",
"generation": 1,
"labels": {
"additionalProperty": "example"
},
"managedFields": [
{
"apiVersion": "example",
"fieldsType": "example",
"fieldsV1": {
"additionalProperty": "example"
},
"manager": "example",
"operation": "example",
"subresource": "example",
"time": "example"
}
],
"name": "example",
"namespace": "example",
"ownerReferences": [
{
"apiVersion": "example",
"blockOwnerDeletion": true,
"controller": true,
"kind": "example",
"name": "example",
"uid": "example"
}
],
"resourceVersion": "example",
"selfLink": "example",
"uid": "example"
},
"spec": {
"description": "example",
"ephemeral": true,
"renewTime": "example",
"source": {
"blob": "example"
}
},
"status": {
"conditions": [
{
"lastTransitionTime": "example",
"message": "example",
"observedGeneration": 1,
"reason": "example",
"status": "example",
"type": "example"
}
],
"deployTime": "example",
"members": {
"agents": 1,
"functions": 1,
"ready": 1
},
"message": "example",
"observedGeneration": 1,
"phase": "example",
"version": 1
}
}
],
"kind": "example",
"metadata": {
"continue": "example",
"remainingItemCount": 1,
"resourceVersion": "example",
"selfLink": "example",
"shardInfo": {
"selector": "example"
}
}
}

An error: a metav1.Status whose reason is a registered code.

Media type application/json

Status is the error body of every API response: a Kubernetes metav1.Status (so kubectl and client-go understand it) plus three top-level extensions that those clients ignore (ADR-028).

object
apiVersion
string
code
integer format: int32
details
object
causes
Array<object>
nullable
object
field
string
message
string
reason
string
group
string
kind
string
name
string
retryAfterSeconds
integer format: int32
uid
string
docs

Docs is the URL of the code’s docs page.

string
fix

Fix says what to do next, for example a CLI command or the field to change.

string
kind
string
message
string
metadata
object
continue
string
remainingItemCount
integer format: int64
resourceVersion
string
selfLink
string
shardInfo
object
selector
required
string
reason
string
requestId

RequestID identifies the request in logs and support tickets.

string
status
string
Example generated
{
"apiVersion": "example",
"code": 1,
"details": {
"causes": [
{
"field": "example",
"message": "example",
"reason": "example"
}
],
"group": "example",
"kind": "example",
"name": "example",
"retryAfterSeconds": 1,
"uid": "example"
},
"docs": "example",
"fix": "example",
"kind": "example",
"message": "example",
"metadata": {
"continue": "example",
"remainingItemCount": 1,
"resourceVersion": "example",
"selfLink": "example",
"shardInfo": {
"selector": "example"
}
},
"reason": "example",
"requestId": "example",
"status": "example"
}