May 2025: Feature releases & highlights
Analyzing Resource Profiles, Dedicated Security Alerts, and Bulk Operations.
- Analyzing resource profiles: Fine-grained resource control is essential in multi-tenant environments, but it can make it difficult for application owners to determine which limits apply to their deployments. To improve transparency, new actions have been introduced for inspecting and understanding the effective constraints imposed by resource profiles.
- Separated security alerts: To enhance situational awareness and facilitate more effective alert routing, alerts are now categorized by type—health, application, and security. This allows for clear filtering, and a new dedicated security view in the Control Tower makes it easier to track incidents related to security posture.
- Bulk load in
supctl: We have enhancedsupctland backend support for loading a bulk of resources, such as applications, secrets, and deployments, in a single operation.
Analyzing resource profiles
Introduction to resource management
The Avassa Edge Platform features a granular and flexible resource management model that governs how applications request and consume system resources. Examples of supported resource types include:
- CPU
- Memory
- Network bandwidth and access
- Container volumes
- Specialized devices (e.g., cameras, sensors, GPUs)
Site providers can define resource profiles that control access to these resources. Resource profiles can be applied at multiple levels:
- Globally: defined at the platform level and applicable across all tenants; these can be scoped per site or individual host.
- Per tenant: allowing differentiated resource limits per tenant, with optional site-level granularity.
These profiles are composable, meaning multiple profiles may coexist at a single site, with enforcement determined by both tenant context and site configuration.
This architecture ensures controlled and predictable resource usage, avoids noisy-neighbor issues, and supports secure, multi-tenant application deployments across large-scale, distributed edge infrastructures.
Read more: https://docs.avassa.io/tutorials/resource-management

While this flexible model gives site providers fine-grained control over resource usage, it can sometimes be non-trivial for application owners to determine which resource constraints apply to their applications at runtime, especially in environments with overlapping global and tenant-specific policies.
To address this, the platform now 🆕 includes observability features that enable application owners to inspect the effective resource allocation for their applications, providing transparency into applied limits and facilitating troubleshooting and planning.
Observe application resource allocation
The first step in inspecting the resources allocated to an application service is to examine a running instance of the application. This can be done in the Web UI by clicking the </> View state yaml button, which gives you the complete YAML state

or supctl
supctl show --site electric-cinema applications popcorn service-instances pop-service-1
name: pop-service-1
application-version: "5.1"
oper-status: running
...
gateway-network:
...
outbound-network-access:
inherited: << Effect of resource profiles
default-action: deny
rules:
192.168.100.101/32: allow
from-application:
allow-all: true
combined:
default-action: deny
rules:
192.168.100.101/32: allow
ingress:
ips:
- 192.168.72.102
inbound-network-access:
inherited: << Effect of resource profiles
allow-all: true
from-application:
allow-all: true
combined:
allow-all: true
containers:
- name: my-container
id: e370c0a7c563
oper-status: running
... << Actual resources
memory: 1 GiB
cpus: 1.0
cpu-shares: 1024
container-layer-size: 20 GiB
devices:
- /dev/rtc0
gpus:
- id: GPU-ee1b2a5c-3cd0-0c4a-a240-d87c22748a35
This output provides visibility into both explicitly allocated resources and any inherited restrictions imposed by system- or tenant-level resource profiles.
Given the multi-tenant nature of the Avassa platform and the layered composition of resource profiles, understanding why a specific restriction is in effect can sometimes be complex. To assist in troubleshooting, you can use the following diagnostic actions, depending on the resource in question:
inspect-allocated-resourcesprovides detailed container-level insights into allocated CPU, memory, container layer sizes, device access, and GPU usage.gateway-network/outbound-network-access/debugandingress/inbound-network-access/debughelp trace and explain applied network access policies at the service instance level.
🔎 Note: These debug actions are tenant-scoped. The results reflect the current tenant context and may differ when run as another tenant.
Running from supctl:
supctl do --site electric-cinema applications popcorn service-instances pop-service-1 \
containers my-container inspect-allocated-resources
Or from the UI:

This produces a number of sections:
- effective-constraints: indicates the total sum of all constraints set by different resource profiles on different levels. A site provider will see the actual resource profiles, whereas an application owner will be informed that the constraints are inherited.
- requested-resources: indicates the amount of resources requested in the application specification for the currently running version
- default-resources: indicates the amount of resources corresponding to the default value from a resource profile. These are resources not explicitely requested. See more in <<tutorial>>
- currently-allocated: indicates the amount of resources currently allocated to the running container, based on the combination of the requested amount of resources, default amount and effective constraints. Note that the value may not correspond to the effective-constraints, requested-resources or default-resources in case some of the resource-profile definitions were changed since the service-instance was started.
- would-allocate: indicates the amount of resources that would be allocated to the container according to the current resource-profile definitions when restarted.
If this command is run as the application owner, the restrictions will be shown as inherited. If the command is run as the site provider, the actual resource profiles are shown. So communication between the site provider and application owner tenants is assumed, and these new inspection tools enables that.
Below follows examples:
Running inspect-allocated-resources as an application owner:
effective-constraints:
memory:
source: inherited
constraint: 2 GiB
cpus:
source: inherited
constraint: 4.0
...
requested-resources:
devices:
device-labels:
- rtc
gpu:
labels:
- nvidia
number-gpus: 1
default-resources:
memory:
source: inherited
default: 1 GiB
cpus:
source: inherited
default: 2.0
currently-allocated:
memory: 1 GiB
cpus: 1.0
cpu-shares: 1024
container-layer-size: 20 GiB
devices:
- /dev/rtc0
gpus:
- id: GPU-ee1b2a5c-3cd0-0c4a-a240-d87c22748a35
would-allocate:
memory: 1 GiB
cpus: 2.0
cpu-shares: 1024
container-layer-size: 20 GiB
devices:
- /dev/rtc0
gpus:
- id: GPU-ee1b2a5c-3cd0-0c4a-a240-d87c22748a35
The output of running the command inspect-allocated-resources as a site provider is shown below. You now get the details of resource profiles in effect for the application tenant.
effective-constraints:
memory:
source: assigned-site-profile << Kind of profile
profile-owner: provider
profile-name: t-my-site << Which profile
constraint: 2 GiB
cpus:
source: tenant-profile
profile-owner: provider
profile-name: t-acme
constraint: 4.0
...
requested-resources:
devices:
device-labels:
- rtc
...
default-resources:
memory:
source: assigned-site-profile
profile-owner: provider
profile-name: t-my-site
default: 1 GiB
...
currently-allocated:
memory: 1 GiB
cpus: 1.0
cpu-shares: 1024
container-layer-size: 20 GiB
devices:
- /dev/rtc0
gpus:
- id: GPU-ee1b2a5c-3cd0-0c4a-a240-d87c22748a35
would-allocate: << After service restart
memory: 1 GiB
cpus: 2.0
cpu-shares: 1024
container-layer-size: 20 GiB
devices:
- /dev/rtc0
gpus:
- id: GPU-ee1b2a5c-3cd0-0c4a-a240-d87c22748a35
The supctl command to get to a tenant’s application is shown below:
supctl do --site my-site electric-cinema tenants acme applications popcorn \
inspect-allocated-resources
Or you can navigate to the site and tenant application in the UI:

Observe network access policies
The above sections described how to debug resource allocation; now let’s move to network restrictions.
By default, an application is not allowed to emit any outgoing traffic at the edge, and incoming/ingress traffic is also blocked. Applications can however request both as shown below:
...
services:
- name: my-service
network:
ingress-ip-per-instance:
protocols:
- name: tcp
port-ranges: "9000"
inbound-access:
allow-all: true
outbound-access:
allow-all: true
A site provider can restrict outbound and inbound traffic in resource profiles. In order to inspect any such limitations imposed by the site provider to the application tenant you can use the following commands. So that you know, these commands are only applicable for a parent tenant. To get network information for your own application you can get the service state as shown above.
If you are the site provider you can inspect restrictions for a certain tenant application using the subctl commands below:
supctl do --site electric-cinema tenants acme applications popcorn service-instances \
pop-service-1 ingress inbound-network-access debug
supctl do --site electric-cinema tenants acme applications popcorn service-instances \
pop-service-1 gateway-network outbound-network-access debug
Or in the Control Tower UI:

An example output of debugging outbound-network-access could look like:
inherited:
default-action: allow
rules:
192.168.100.106/32: deny
assigned:
tenant: acme
source: tenant-profile
profile-name: allow-101-and-106-only
default-action: deny
rules:
192.168.100.101/32: allow
192.168.100.106/32: allow
from-application:
allow-all: true
combined:
default-action: deny
rules:
192.168.100.101/32: allow
A brief explanation follows:
- inherited: indicates the network access access rules applied to the tenant running the action, in this case to the provider.
- assigned: indicates that the site provider tenant has assigned a set of network access rules to application owner tenant acme.
- assigned: indicates that the site provider tenant has assigned a set of network access rules to application owner tenant acme.
- from-application: indicates the network access requested in the application specification
- combined: is the network access rules applied to the running service instance, incorporating all of the above mentioned access rules.
Summarizing resource usage debugging
Below follows a summary of the above detailed feature descriptions
- Inspect allocated resources: To view the actual resource limits applied to a service instance and its containers, check the service instance state.
- As an application owner: Use the
inspect-allocated-resourcesaction on your container to view current limits. Note that this does not explain why the limits were applied. For full context, consult your site provider. - As a site provider: To understand resource profiles affecting an application owner, run
inspect-allocated-resourceson the tenant’s container. This reveals the impact of assigned resource profiles. - Debugging network restrictions: Use
outbound-network-access/debugandinbound-network-access/debugactions to investigate applied network restrictions.
Security Alerts
The Avassa edge platform provides alerts that give early warnings for the health of the hosts, the deployed applications and any security related incidents. In order to separate and filter these three categories for different purposes, all alerts now has a 🆕 kind field with the following values:
infrastructureAlerts related to hosts, sites, cluster, etc.applicationApplication related alerts.securitySecurity related alerts.
It is strongly recommended that you forward these alerts to your dedicated operational tools, either by a Volga client or Webhooks.
In order to be able to focus on security in the Control Tower UI we have now added a dedicated security alerts view:

Bulk load
In some cases—such as when working with applications—multiple related objects need to be managed together. This typically includes the application specification and associated secrets. The bulk operation feature enables users or systems to create and update these resources in a single batch. The bulk API is transactional: either all operations succeed, or none are applied. If any part of the transaction fails, all changes are rolled back to ensure consistency.
You can prepare a file with all objects and related operations in one file and then apply it through supctl:
supctl patch < mosquitto.yaml
The input file is a list of x-path links, operation and data like illustrated below:
---
x-path: /v1/config/strongbox/tls/ca/mosquitto
x-operation: replace
name: mosquitto
ttl: 3y
...
---
x-path: /v1/config/strongbox/vaults/mosquitto/secrets/cert
x-operation: replace
name: cert
...
---
x-path: /v1/config/strongbox/vaults/mosquitto/secrets/credentials
x-operation: replace
name: credentials
data:
...
---
x-path: /v1/config/applications/mosquitto
x-operation: replace
name: mosquitto
version: "1.0"
services:
...
A convenient way of learning the paths and data to be applied is to use prepare the objects and then use subctl to show the full path and operation:
supctl show applications mosquitto --with-operation replace
x-path: /v1/config/applications/mosquitto
x-operation: replace
name: mosquitto
version: "1.0"
...
Read more: https://docs.avassa.io/how-to/bulk.
Security and Edge Computing
Edge environments are increasingly targeted in security incidents across industries. Below are a few real-world examples that underscore the importance of clear, actionable visibility into security-specific alerts:
- Retail – Target Data Breach (2013): Attackers gained access via a third-party HVAC vendor and moved laterally through poorly segmented networks to reach point-of-sale systems. Demonstrates the risk of edge-connected systems with shared infrastructure.
- Industrial – Norsk Hydro Ransomware Attack (2019): A LockerGoga ransomware infection disrupted operations across factories and smelters worldwide. Highlights the vulnerability of industrial edge systems with limited segmentation and weak update practices.
- Telecom – T-Mobile Edge Device Misconfigurations (2021): Security researchers discovered exposed 5G edge routers and management interfaces due to misconfigured access controls. Underscores the risk of edge compute nodes with public interfaces lacking zero-trust protections.
For a deeper overview of how Avassa approaches edge security—including authentication, secrets management, and secure orchestration—see our Security Overview data sheet.