Default images
The terraform deployments support to omit the image names and tags in the tfvars.
If the image name is omitted, a default image name is used, specified directly in variables.tf.
If the image tag is omitted, the default tag for this very image is used.
The default tags are defined in versions.tfvars.json.
For all ArmoniK images, the default tag correspond to the version (in armonik_versions variable) of the ArmoniK component that generates the image (in armonik_images variable).
For third-party images, the default tag of an image is defined in image_tags variable.
You are still be able to specify custom image names and/or image tags in your tfvars if you want, without needing to modify versions.tfvars.json.
If you try to use an image name that is not listed in versions.tfvars.json, you are required to also specify a tag for this image.
Examples
All the examples are for the all-in-one local deployment for mongodb, with the following default versions:
{
"armonik_versions": {
"core": "0.8.3",
"extcsharp": "0.8.1",
...
},
"armonik_images": {
"core": [
"dockerhubaneo/armonik_control",
"dockerhubaneo/armonik_core_bench_test_worker",
...
],
"extcsharp": [
"dockerhubaneo/armonik_worker_dll"
],
...
},
"image_tags": {
"mongo": "5.0.9",
...
}
}
Specifying the image and its version within the tfvars (ex: parameters.tfvars)
Use the default image and tag
mongodb = {
}
control_plane = {
default_partition = ...
}
mongodb:
mongo:5.0.9control_plane:
dockerhubaneo/armonik_control:0.8.3
Use the default image with a custom tag
mongodb = {
image_tag = "6.0"
}
control_plane = {
image_tag = "0.8.0"
default_partition = ...
}
mongodb:
mongo:6.0control_plane:
dockerhubaneo/armonik_control:0.8.0
Use a custom image
mongodb = {
image_name = "custom_registry/mongo"
image_tag = "6.0" # required
}
control_plane = {
image_name = "custom_registry/custom_armonik_control"
image_tag = "0.8.3" # required
default_partition = ...
}
mongodb:
custom_registry/mongo:6.0control_plane:
custom_registry/custom_armonik_control:0.8.3
Special case of the workers
There is no default image for the workers, but you can still omit the tag if the image is listed in versions.tfvars.json:
compute_plane = {
partition1 = {
worker = [{
image = "dockerhubaneo/armonik_core_bench_test_worker"
}]
}
partition2 = {
worker = [{
image = "dockerhubaneo/armonik_worker_dll"
}]
}
partition3 = {
worker = [{
image = "dockerhubaneo/armonik_worker_dll"
tag = "0.8.0"
}]
}
partition4 = {
worker = [{
image = "custom_worker"
tag = "0.1.0"
}]
}
}
Workers:
partition1:
dockerhubaneo/armonik_core_bench_test_worker:0.8.3partition2:
dockerhubaneo/armonik_worker_dll:0.8.1partition3:
dockerhubaneo/armonik_worker_dll:0.8.0partition4:
custom_worker:0.1.0