Nova
Nova is the service that provides a managed Axyon System Control plane. It is responsible for deploying and managing the various Axyon components.
Architecture
As with all Axyon components, Nova provides an API in a client/server model. The nova
command line interface (CLI) manages the novad
server over GRPC. Nova uses OCI containers to run all Axyon system components.
Management
Nova manages Axyon components using containers. This provides simple component lifecycle management by enabling quick upgrades and downgrades, backups, and more. All of this is provided to the user with the Nova CLI and optional GRPC API for advanced integrations. Nova provides the following capabilities:
Deployment
Nova manages component deployments. By default, Nova will deploy the latest stable
version of each component but allows you to select individual components for upgrade if desired. Behind the scenes this works as follows:
- Fetch latest component image
- Stop and remove the current component container
- Create and start a new container using the updated image
All data is persisted as Nova uses a lightweight "volume" concept for data management.
Volumes
Nova maintains a "volume" for components that require persistent state. These are managed directories on an ASC node. Before each deployment, the directory is backed up to enable restoration to a previous component version including all data.
Secrets
Secrets are managed credentials for components that require them. For example, database, admin login credentials etc. These are used for bootstrapping and configuring Axyon components and services.
Note
Nova secrets are stored on the filesystem and are not encrypted. Take care to ensure these are protected at the system level.
Upgrades
Nova provides an update
command that will fetch the latest release of the Nova server. It verifies a checksum and performs an in-place upgrade of the server binary followed by a restart. This enables a simple way of updating the Nova management system itself to keep up-to-date.
Reference
The following provides reference for the Nova system.
Nova CLI (nova)
NAME:
nova - Axyon Systems Control Manager
USAGE:
nova [global options] command [command options]
AUTHOR:
Axyon Project
COMMANDS:
discover Discover Axyon Nova Services
deploy deploy platform
platform-info show current platform info
service-info show service info
service-logs stream service logs
restart restart platform services (default: all)
remove remove all components of the platform
info show app info
update update the application
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--debug, -D enable debug logging (default: false)
--addr value, -a value nova grpc server address (default: "tcp://127.0.0.1:18080") [$NOVA_ADDR]
--secret value nova shared authentication secret [$NOVA_SHARED_SECRET]
--help, -h show help
--version, -v print the version
discover
Discover runs an mDNS discovery service that will watch and show Axyon Nova instances. This is helpful on first deployment to locate an ASC node.
deploy
This command deploys the Axyon components.
platform-info
This shows the current information such as deployed components and versions for the platform.
nova service-info platform-info
Services
- Name: arkeia-db
Version: postgres (PostgreSQL) 17.3
- Name: arkeia
Version: 2025.02.22 (c289f33)
- Name: orion-db
Version: postgres (PostgreSQL) 17.3
- Name: orion
Version: 2025.03.17 (9899f33)
- Name: fusion
Version: 2025.03.18 (2f7ce79)
service-info
This gets detailed information about a specific service in JSON format:
nova service-info fusion
{
"name": "fusion",
"image": "r.underland.io/axyon-io/fusion:stable",
"volumes": [
{
"type": "bind",
"name": "fusion",
"destination": "/data",
"options": [
"rw",
"rbind"
]
}
],
"env": {
"FUSION_CERT_DIR": "/data/certs",
"FUSION_ENABLE_DISCOVERY": "true",
"FUSION_LISTEN_ADDRESS": ":10080"
},
"cmd": [
"fusion"
],
"versionCmd": [
"/bin/fusion",
"--version"
]
}
service-logs
This command streams logs for the specified service:
nova service-logs orion
time="2025-03-19T14:57:39Z" level=info msg="registered service" type=orion.services.registration.v1
time="2025-03-19T14:57:39Z" level=debug msg="waiting for services start"
time="2025-03-19T14:57:39Z" level=debug msg="starting service orion.services.compute.v1"
time="2025-03-19T14:57:39Z" level=info msg="service started: orion.services.compute.v1"
time="2025-03-19T14:57:39Z" level=debug msg="starting service orion.services.info.v1"
time="2025-03-19T14:57:39Z" level=debug msg="starting service orion.services.cluster.v1"
time="2025-03-19T14:57:39Z" level=info msg="service started: orion.services.cluster.v1"
time="2025-03-19T14:57:39Z" level=debug msg="starting service orion.services.auth.v1"
time="2025-03-19T14:57:39Z" level=info msg="service started: orion.services.auth.v1"
time="2025-03-19T14:57:39Z" level=debug msg="starting expirer"
restart
This restarts one or more services. If no service name is specified, all services are restarted.
remove
This removes the Axyon platform. The following options are available:
remove-volumes
: Remove all data volumes (default:false
)remove-secrets
: Remove all secret data (default:false
)
update
Perform an in-place update of the Nova server.
Nova Server (novad)
NAME:
nova - Axyon Systems Control Manager (daemon)
USAGE:
nova [global options] command [command options]
AUTHOR:
Axyon Project
COMMANDS:
serve start nova server
config
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--debug, -D enable debug logging (default: false)
--help, -h show help
--version, -v print the version
serve
Start the Nova server. The following options are available:
config
: the path to the configuration filepprof-addr
: start a performance profiling server on the specified address
config
This generates an example configuration file.