mirror of
https://github.com/status-im/infra-swarm.git
synced 2025-02-22 04:18:19 +00:00
63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
|
# Description
|
||
|
|
||
|
[Swarm](https://github.com/ethersphere/swarm) clusters configuration.
|
||
|
|
||
|
# Requirements
|
||
|
|
||
|
In order to use this you will need secrets(passwords, certs, keys) contained within the [infra-pass](https://github.com/status-im/infra-pass) repository. If you can't see it ask jakub@status.im to get you access for it.
|
||
|
|
||
|
In order for this to work first you need to install necessary Terraform plugins and get the right secrets from the [infra-pass](https://github.com/status-im/infra-pass) repo, to do that simply run:
|
||
|
```
|
||
|
make
|
||
|
# alternatively
|
||
|
make plugins
|
||
|
make secrets
|
||
|
```
|
||
|
This will put the necessary certificates, keys, and passwords are in place so you can deploy and configure hosts.
|
||
|
|
||
|
# Usage
|
||
|
|
||
|
To provision a new fleet create a new Terraform workspace:
|
||
|
```
|
||
|
terraform workspace new bug-test
|
||
|
```
|
||
|
Then plan your fleet and if everything looks good provision it:
|
||
|
```
|
||
|
terraform plan
|
||
|
terraform apply
|
||
|
```
|
||
|
Once provisioned you can configure the hosts using Ansible:
|
||
|
```
|
||
|
ansible-playbook ansible/main.yml
|
||
|
```
|
||
|
Once finished your hosts should be accessible via SSH:
|
||
|
```
|
||
|
ssh ${USER}@node-01.bug-test.eth.f.status.im
|
||
|
```
|
||
|
|
||
|
# Workspaces
|
||
|
|
||
|
Each Terraform `workspace` has it's own path in the dynamic inventory and is a separate fleet of hosts.
|
||
|
You can see currently existing fleets using following command:
|
||
|
```
|
||
|
terraform workspace list
|
||
|
default
|
||
|
* devel
|
||
|
test
|
||
|
perf-test
|
||
|
```
|
||
|
You can select a fleet and see it's current state of the fleet:
|
||
|
```
|
||
|
terraform workspace select perf-test
|
||
|
terraform show
|
||
|
```
|
||
|
Or create a new workspace for yourself.
|
||
|
```
|
||
|
terraform workspace new bug-test-01
|
||
|
```
|
||
|
The name of your workspace will be used in the DNS names of your hosts, for example:
|
||
|
```
|
||
|
mail-01.bug-test-01.eth.f.status.im
|
||
|
```
|
||
|
And it's state will be saved in the [Consul](https://www.consul.io/) cluster managed by the [infra-hq](https://github.com/status-im/infra-hq) repo.
|