Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nunchistudio/hashibox

Simulate a highly-available Cloud Platform with Consul, Nomad, and Vault. OSS & Enterprise versions supported.
https://github.com/nunchistudio/hashibox

bolt cloud cloud-platform consul consul-connect devops docker hashicloud hashicorp hashistack hcp localstack nomad platform-engineering puppet-bolt vagrant vault waypoint

Last synced: 7 days ago
JSON representation

Simulate a highly-available Cloud Platform with Consul, Nomad, and Vault. OSS & Enterprise versions supported.

Awesome Lists containing this project

README

        

# HashiBox

HashiBox is a local environment to simulate a highly-available cloud with
[Consul](https://www.consul.io/), [Nomad](https://www.nomadproject.io/), and
[Vault](https://www.vaultproject.io/). OSS and Enterprise versions of each
product are supported. Consul Connect is enabled and uses Vault as CA provider.

It also installs [Docker](https://www.docker.com/) for running Nomad's jobs inside
containers.

It leverages [Vagrant](https://www.vagrantup.com/) for virtualization, and
[Bolt](https://puppet.com/docs/bolt/) for maintenance automation across nodes.

The main goal of HashiBox is to provide a local setup respecting environment
parity for simulating a Cloud Platform from end-to-end before going in production.

**Useful links:**
- [Get started](https://nunchi.studio/hashibox)

**Vagrant providers supported:**
- `parallels`
- `virtualbox`
- `vmware_desktop`

**Architectures supported:**
- `amd64`
- `arm64`

**Notes about the environment:**
- ACLs are enabled and automatically bootstrapped in Consul and Nomad. To simplify
the setup, the bootstrapped tokens are used in favor of scope-defined ones.
- To simplify the setup, TLS across Consul, Nomad, and Vault is not configured.
- Only Vault *server* is leveraged. Vault agents in *client* mode are not setup
since we don't use it. Feel free to make a pull request to support it.
- We could have leveraged Vagrant's *sync folders* instead of Bolt for file
sharing with machines. Bolt is a better choice for *production-practices*
but also for automating scripts across nodes.

## Summary schema



How HashiBox works

## Screenshots

Consul

![Consul Services](./assets/screenshots/consul-services.png)

![Consul Nodes](./assets/screenshots/consul-nodes.png)

![Consul Tokens](./assets/screenshots/consul-tokens.png)

![Consul Policies](./assets/screenshots/consul-policies.png)

Nomad

![Nomad Jobs](./assets/screenshots/nomad-jobs.png)

![Nomad Clients](./assets/screenshots/nomad-clients.png)

![Nomad Servers](./assets/screenshots/nomad-servers.png)

![Nomad Tokens](./assets/screenshots/nomad-tokens.png)

![Nomad Topology](./assets/screenshots/nomad-topology.png)

Vault

![Vault Secrets](./assets/screenshots/vault-secrets.png)

![Vault Access](./assets/screenshots/vault-access.png)

## License

Repository licensed under the [MIT License](./LICENSE.md).