Config Spec
ProjectName: string
The name of the container in case multiple instances of the same container image are used.
For many services they will involve a service stack where each container in the compose get a hard-coded name and this var is never used in the compose.
example: commafeed
NetworkSetup: string
The type of network used for the compose file. Manages what containers are reachable in the docker network the container(s) for this role are deployed in.
Options include:
t3_only: putting the container(s) on a docker network with themain traefik containerfor that hostts_only: putting the container(s) on a docker network with themain tailscale containerfor that hostshared: putting the container(s) on a docker network withboththemain traefik containerandmain tailscale containerfor that hostnone: generate and do nothing
UserGateDetails: Dictionary<string, Dictionary<string, List<string>>>
For context a service role could be used on multiple hosts concurrently, an example being the Network role which is deployed on all hosts. A service can contain multiple container instances which require a block in the UserGateVar.
The format here is
- key (string): host name
- value (dictionary):
- key: container instance sub-domain preceding host.wiresndreams.dev
- value (list of strings): tailscale host ip address # name of each permitted host
note: can be empty
DirectoriesToCreate: string[]
Directories to create on remote. Any directories needed by templates and files should be named here.
note: can be empty
TemplatesRemoteRelativePaths: Dictionary<string, string>
- key: name of template file
- value: target path of template file on remote
warning: no additional files should be in the config-data-dir/templates-dir beyond the templates themselves
note: can be empty *(if templates are present in templates config data directory then this should not be empty)
FilesRemoteRelativePaths: Dictionary<string, string>
- key: name of file
- value: target path of file on remote
warning: no additional files should be in the config-data-dir/files-dir beyond the files themselves
note: can be empty *(if files are present in files config data directory then this should not be empty)
UserGateHost: string
Which host is the UserGateHost to know which file to edit with those details.
Hosts: string[]
Lists all hosts the service role is used on. For the purpose of editing each host vars file.
Notes:
- Exists separately from UserGateDetails because there could be a case where a service is deployed without intention to be accessed and this provides a simpler variable to use and access.
- can be empty *(if files are in host_vars config data directory then this should not be empty)