Can assets be registered/installed by sensuctl in an offline setting?

I’m currently evaluating Sensu-go, and I’m at the (very early) point of trying to register assets (namely the CPU check, per the documentation on monitoring server resources: https://docs.sensu.io/sensu-go/latest/guides/monitor-server-resources/). Maybe I’m blind or just not looking in the right place, but I can’t find anything in the documentation that could help me in registering/installing assets without internet access.

Is there a way to download the asset files from either Bonsai or Github, copy them to a sensu server (which doesn’t have internet connectivity), and install them locally?

If not, do you have any suggestions on how I can get around this?

Assets are meant to be installed on-demand when the the check/mutator/handler that requires it is executed.

One way of solving your problem would be to have a local HTTP(S) server running that can serve assets you need in a safe manner. This means that you need to have a server running, but you will solve the asset-availability issue for all agents and backends.

More hackish way of bypassing the need for internet access would be to place the asset archives in a cache folder when installing the agent. This way, you do not need a HTTP server to serve the assets, but you will need to place them into cache directory on each agent and/or backend. This way might not be feasible if you are setting things up manually, but completely doable if you intend to use one of the configuration management systems for deploy and maintenance.

I would concur with @tadeboro the easiest thing you can do is to setup a webserver inside your local network to serve all your agents and update the asset definitions to point to your webserver.

I do this when I’m prototyping assets. I just host the new assets locally on my dev machine. I just run a simple python webserver to serve a directory (Ref: https://docs.python.org/3/library/http.server.html)

In an on-prems production environment, its not uncommon to take this further and have an artifactory implementation host the assets, or in a k8s environment have a pod or sidecar dedicated to serving up a local only assets directory via an http service defined cluster wide.