fastiot.cli.model.deployment module

Data models for deployment configurations

pydantic model fastiot.cli.model.deployment.InfrastructureServiceConfig[source]
field external: bool = False

Allows to mention services running on external servers and configured manually. This will avoid warnings in the setup process if services specified by the services as dependency could not be found.

Attention: You need to manage the environment variables like host and port yourself if using external = True.

pydantic model fastiot.cli.model.deployment.ServiceConfig[source]

The config for a service

field image: str [Required]

The name defines which service is taken. Must contain possible namespace identifiers as a prefix, e.g. fastiot/time_series

field docker_registry: str = ''

The specified docker registry. If given it will override the docker_registry for the service, otherwise the locally configured docker registry will be used.

field tag: str = ''

The specified tag. If given it will override the tag for the service

field environment: Dict[str, str] = {}

Includes all environment variables specifically for this service

pydantic model fastiot.cli.model.deployment.AnsibleHost[source]

Represents a host for Ansible based deployments, used by fastiot.cli.models.deployment.DeploymentTargetSetup

field ip: str [Required]

IP-Address (or DNS-resolvable hostname) where to find the host.

You may also add additional parameters to be placed in the inventory (hosts) file for ansible like

ansible_user=some_special_user directly following the string.

pydantic model fastiot.cli.model.deployment.DeploymentTargetSetup[source]

Configuration options to generate ansible playbooks on the fly to deploy your project

field hosts: Dict[str, AnsibleHost] [Required]

A list with ansible hosts to deploy the setup to

field remote_user: Optional[str] = 'ubuntu'

The remote user to use to logins for all hosts, defaults to ubuntu

Set to True to enable automatically link the Prometheus-Client configuration copied by Ansible to host to the current project. Only works if you do not have docker-compose.override.yaml in your deployment already.

pydantic model fastiot.cli.model.deployment.DeploymentConfig[source]

Represents an imported config. All fields are already overwritten specified command line parameters, currently including environment, docker_registry and tag

field name: str [Required]
Validated by:
field version: int = 1
Validated by:
field services: Dict[str, Optional[ServiceConfig]] = {}

List of services for the deployment

Validated by:
field infrastructure_services: Dict[str, InfrastructureServiceConfig] = {}

List of infrastructure services for the deployment

Validated by:
field deployment_target: Optional[DeploymentTargetSetup] = None

A deployment configuration to auto-generate Ansible Playbooks

Validated by:
field docker_registry: str = ''

Specify a docker registry which acts as a default registry for all services (not infrastructure services). Overrides any docker registry specified by CLI.

Validated by:
field tag: str = ''

Specify a docker tag which acts as a default tag for all services (not infrastructure services). Overrides any docker tag specified by CLI.

Validated by:
field config_dir: str = './config_dir'

Specify a config dir. The config dir will get mounted to /etc/fastiot

It defaults to config_dir

Validated by:
validator check_services  »  all fields[source]
static from_yaml_file(filename)[source]
Return type:

DeploymentConfig

to_yaml_file(filename)[source]