Skip to content

mutablelogic/tf-nomad

Repository files navigation

tf-nomad

Terraform modules for nomad clusters. In order to use these modules, please use the following provider block:

provider "nomad" {
  address   = env.NOMAD_ADDR
  region    = env.NOMAD_REGION
  secret_id = env.NOMAD_TOKEN
}

coredns

DNS server which could be used to resolve nomad services into dns records

TODO:

  • All nomad jobs will need to use the coredns service as a dns_server option

github-action-runner

GitHub action runner, which can be placed on several nodes

TODO:

  • Remove runner from github when job is removed

grafana

grafana is a database server

TODO:

  • LDAP integration
  • Add TLS support
  • Data source provisioning
  • Dashboard provisioning

InfluxDB

Time-series database, which can be placed on several nodes

TODO:

  • Add TLS support

metabase

Analytics dashboard builder

TODO:

  • Add LDAP support

mongodb

Document database, which can be replicated on several nodes

TODO:

  • Add TLS support

mosquitto

MQTT broker, which can be placed on several nodes

TODO:

  • Add TLS support

nginx

Web server and reverse proxy, which can be placed on several nodes

TODO:

  • In progress
  • Add TLS certificate support
  • Not sure how we can integrate with nomad services

Ollama

Ollama LLM service, with the Open WebUI.

TODO:

  • Add multiple AI service keys and hosts
  • Potentiallty don't call Ollama like this from the Web UI, if there is more than one host

OpenLDAP

OpenLDAP server, which can be placed on several nodes

TODO:

  • In progress
  • Add TLS support
  • Add replication support
  • Add custom schema support

OpenLDAP Administation

OpenLDAP administration, for adding users and groups, and changing passwords

TODO:

  • Add TLS support
  • Add SNMP support

PostgreSQL

PostgreSQL is a database server

TODO:

  • LDAP integration
  • Add TLS support
  • Add replication support
  • Use volume instead when the data does not have '/' as prefix
  • Add users, databases and roles support on initialization

Photoprism

Photoprism is a photo library hosting service. It uses it's own MariaDB database.

seaweedfs

Cluster filesystem, which can be spread across multiple nodes.

TODO:

  • A lot of testing is needed

semaphore

Semaphore is a Ansible front-end

TODO:

  • In progress
  • LDAP integration

telegraf

Time-series metrics collector, which can be placed on several nodes

When setting up your configuration with inputs and outputs, each value needs to be JSON encoded, so that the configuration can be passed as a map of strings, as Terraform does not support maps of more than one type. See the terraform example above for a demonstration of this.

TODO:

  • Add processors support

About

Terraform for nomad clusters

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages