Skip to content

Architecture

Lasith Koswatta Gamage edited this page Jan 8, 2024 · 7 revisions

Portability was one of the key reasons why ebs-bootstrap was programmed in the Go programming language. The ease of distributing a single statically-compiled binary out-weighted the reduced development and testing complexity a language like Python would have brought. By producing a statically-compiled binary, we ensure that this tool has "no strings attached" support across common architectures (x86_64 and aarch64) and AWS-supported Linux distributions (Amazon Linux, RHEL/CentOS Derivatives and Ubuntu)

ebs-bootstrap adopts a best-effort strategy to align a block device's actual state with its intended configuration, while operating within specific constraints. If a block device is mounted at a location different from what is specified in the settings, the tool will try to unmount it first, then remount it to the correct location. However, it prioritises data safety by not allowing any actions that would modify or delete the file system on a block device that is already formatted.

UML Diagram of ebs-bootstrap Architecture

Clone this wiki locally