Blocks
A block represents a piece of infrastructure in your stack - like a running container, or a database, a Redis instance, a queue and so on.
Blocks can be created like this:
dgctl block add --type=container --name myApp
The above
dgctl
command has created a new "slot" for running a container; the dgctl.json
file has been updated with new block details. To get the changes applied to your cloud provider's account, run dgctl generate
and then dgctl provision
Each block is defined as an entry in the
"blocks": [ ... ]
list, with just 2 required params:name
- the name of the blocktype
- the type of the block
dgctl.json
is just an "index" though - block configuration is done in the block folderdgctl block add
command creates an entry in dgctl.json
file and also create a directory to store block configuration, with the following structure:├── myBlock
│ ├── config.json
│ └── overrides
The
config.json
file stores block's settings. For example, for a standard block of type container
it might look like this:{
"target": "diggerhq/[email protected]",
"task_memory": 512,
"task_cpu": 256,
"container_port": 8000,
"load_balancer": true,
"internal": false,
"health_check": "/",
"health_check_matcher": "200-499",
"launch_type": "FARGATE",
"monitoring_enabled": false,
"lb_monitoring_enabled": false
}
The
target
option defines the block's implementation. By default it points to a standard implementation of a given type by Digger. But it can be any github repo - you can fork it, or write your own from scratch.
Last modified 1mo ago