Infrastructure Code overview
In order to deploy a fully automated infrastructure, we are using:
terraform: create VMs and data volumes, network, DNS entries, backup resources (AWS S3). Check vms.html file to identify all our machines.
itsm resources : installs all required applications and configurations to the machines created via terraform
ansible: users, letsencrypt+nginx, docker, monitoring and everything else
bamboo_agents_puppet: only bamboo agents: maven, node, docker and all bamboo builds requirements
openmrs-contrib-ansible-docker-compose: ansible role repository for all internal docker-compose applications (How to deploy a new application to our infrastructure)
There's no technical reason why puppet and ansible co-exist. That happened naturally due to different people working on different things. https://openmrs.atlassian.net/browse/ITSMOLD-4334
In all repositories, as they are public, secrets are encrypted (using either ansible-vault or git-crypt). If you do need access to any of them for any reason, please contact infrastructure team.
All our internal documentation for each service is hosted on github wiki, as it needs to be accessed even if confluence is down.