Documentation ¶
Overview ¶
*
- This file is a bit funny. The goal here is to use setns() to manipulate
- files inside the container, so we don't have to reason about the paths to
- make sure they don't escape (we can simply rely on the kernel for
- correctness). Unfortunately, you can't setns() to a mount namespace with a
- multi-threaded program, which every golang binary is. However, by declaring
- our init as an initializer, we can capture process control before it is
- transferred to the golang runtime, so we can then setns() as we'd like
- before golang has a chance to set up any threads. So, we implement two new
- fork* commands which are captured here, and take a file on the host fs
- and copy it into the container ns. *
- An alternative to this would be to move this code into a separate binary,
- which of course has problems of its own when it comes to packaging (how do
- we find the binary, what do we do if someone does file push and it is
- missing, etc.). After some discussion, even though the embedded method is
- somewhat convoluted, it was preferred.
Incus external REST API ¶
This is the REST API used by all Incus clients. Internal endpoints aren't included in this documentation.
The Incus API is available over both a local unix+http and remote https API. Authentication for local users relies on group membership and access to the unix socket. For remote users, the default authentication method is TLS client certificates.
Version: 1.0 License: Apache-2.0 https://www.apache.org/licenses/LICENSE-2.0 Contact: Incus upstream <lxc-devel@lists.linuxcontainers.org> https://github.com/lxc/incus
swagger:meta
Source Files ¶
- acme.go
- api.go
- api_1.0.go
- api_cluster.go
- api_internal.go
- api_internal_recover.go
- api_metrics.go
- api_project.go
- api_vsock.go
- backup.go
- certificates.go
- cgo.go
- daemon.go
- daemon_config.go
- daemon_images.go
- daemon_storage.go
- dev_incus.go
- devices.go
- events.go
- images.go
- instance.go
- instance_backup.go
- instance_console.go
- instance_delete.go
- instance_exec.go
- instance_file.go
- instance_get.go
- instance_instance_types.go
- instance_logs.go
- instance_metadata.go
- instance_patch.go
- instance_post.go
- instance_put.go
- instance_rebuild.go
- instance_sftp.go
- instance_snapshot.go
- instance_state.go
- instances.go
- instances_get.go
- instances_post.go
- instances_put.go
- logging.go
- main.go
- main_activateifneeded.go
- main_callhook.go
- main_checkfeature.go
- main_cluster.go
- main_daemon.go
- main_forkconsole.go
- main_forkcoresched.go
- main_forkexec.go
- main_forkfile.go
- main_forklimits.go
- main_forkmigrate.go
- main_forkmount.go
- main_forknet.go
- main_forkproxy.go
- main_forkstart.go
- main_forksyscall.go
- main_forkuevent.go
- main_forkzfs.go
- main_manpage.go
- main_migratedumpsuccess.go
- main_netcat.go
- main_nsexec.go
- main_shutdown.go
- main_version.go
- main_waitready.go
- metadata.go
- migrate.go
- migrate_instance.go
- migrate_storage_volumes.go
- migration_connection.go
- network_acls.go
- network_allocations.go
- network_forwards.go
- network_integrations.go
- network_load_balancers.go
- network_peers.go
- network_zones.go
- network_zones_records.go
- networks.go
- networks_utils.go
- operations.go
- patches.go
- profiles.go
- profiles_utils.go
- resources.go
- response.go
- snapshot_common.go
- storage.go
- storage_buckets.go
- storage_buckets_backup.go
- storage_pools.go
- storage_pools_utils.go
- storage_volumes.go
- storage_volumes_backup.go
- storage_volumes_snapshot.go
- storage_volumes_state.go
- storage_volumes_utils.go
- swagger.go
- tokens.go
- warnings.go
Click to show internal directories.
Click to hide internal directories.