Skip to main content

Object-storage

Infra Sync Tracker provides an interface to store and retrieve files or objects in an object-storage. The object-storage is used internally within Infra Sync Tracker to store rendered artifacts, but it can be used to store any text based file or content.

You can interface with the object-storage through the REST API and Python SDK. See the object-storage guide and object-storage Python SDK guide for more information.

Supported backends

At this moment Infra Sync Tracker supports using local storage, or AWS S3 storage backends. Support for other storage backends will be added in the future.

Local storage

Infra Sync Tracker can use local storage as a storage backend. It can be any directory on a filesystem that is attached to the system on which Infra Sync Tracker runs. The only requirement is that all the Infra Sync Tracker API servers and Task workers need access to the filesystem.

To setup Infra Sync Tracker to use local storage backend you can use the following configuration:

[storage]
driver = "local"

[storage.local]
path = "/opt/infrahub/storage/"

More details can be found in the configuration documentation.

AWS S3 storage

Infra Sync Tracker can use AWS S3 or any other S3 API compatible storage as a storage system.

To setup Infra Sync Tracker to use AWS S3 as a storage backend you can use the following configuration:

[storage]
driver = "s3"

[storage.s3]
access_key_id = "my_access_key"
secret_access_key = "secret_access_key"
bucket_name = "my-infrahub-bucket"
endpoint_url = "https://s3.eu-central-1.amazonaws.com"

More details can be found in the configuration documentation.

Object model

Objects or files stored within the object-storage, are identified by an identifier (UUID). An identifier is assigned to the object at time of creation within the object-storage. Interactions with the object then happen leveraging that identifier.