34 lines
1.9 KiB
Markdown
34 lines
1.9 KiB
Markdown
# 0001: Infrastructure as Code
|
|
|
|
## Status
|
|
|
|
Accepted
|
|
|
|
## Context
|
|
|
|
Atlas is a dedicated AI development server intended to be rebuildable from a clean Ubuntu installation. The server needs a practical source of truth for architecture, standards, installation automation, configuration templates, operational scripts, tests, recovery procedures, architectural decisions, and build history.
|
|
|
|
Manual server changes are difficult to audit and repeat. A repository-managed approach gives Atlas a reviewable history and creates a path toward reliable rebuilds.
|
|
|
|
## Decision
|
|
|
|
Atlas will be managed using Infrastructure as Code principles.
|
|
|
|
This repository is the authoritative source for Atlas infrastructure and operations. Installation and operational automation will be implemented as documented, version-controlled, idempotent scripts. Configuration will be represented through repository-managed templates where practical. Unknown details will remain documented as TODOs until the relevant implementation phase confirms them.
|
|
|
|
## Consequences
|
|
|
|
- Infrastructure changes must be reviewable in Git.
|
|
- Manual changes should be documented and converted into automation where practical.
|
|
- Scripts must be safe to rerun.
|
|
- Documentation is part of the operational system and must be maintained.
|
|
- Secrets must remain outside the repository.
|
|
- Rebuild and recovery should become more reliable as automation is added.
|
|
- Initial progress may be slower because standards and documentation are created before automation.
|
|
|
|
## Alternatives considered
|
|
|
|
- Continue managing the server manually. This was rejected because it would make rebuilds, audits, and recovery harder.
|
|
- Use ad hoc scripts outside Git. This was rejected because it would not provide reliable history or review.
|
|
- Adopt a heavier configuration-management system immediately. This was deferred because Atlas is currently a single server and Bash scripts are sufficient for the initial phase.
|