File tree Expand file tree Collapse file tree 11 files changed +69
-7
lines changed
runtime_container_engine_config Expand file tree Collapse file tree 11 files changed +69
-7
lines changed Original file line number Diff line number Diff line change @@ -345,6 +345,6 @@ variable "vault_secret_id" {
345
345
}
346
346
347
347
variable "vault_token_renew" {
348
- type = number
348
+ type = number
349
349
description = " Vault token renewal period in seconds. Required when TFE_VAULT_USE_EXTERNAL is true."
350
350
}
Original file line number Diff line number Diff line change @@ -16,5 +16,10 @@ locals {
16
16
distribution = var.distribution
17
17
enable_monitoring = var.enable_monitoring != null ? var.enable_monitoring : false
18
18
})
19
+
19
20
quadlet_unit = templatefile (" ${ path . module } /templates/terraform-enterprise.kube.tpl" , {})
21
+
22
+ retry = templatefile (" ${ path . module } /templates/retry.func" , {
23
+ cloud = var.cloud
24
+ })
20
25
}
Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ locals {
45
45
get_base64_secrets = local.get_base64_secrets
46
46
install_packages = local.install_packages
47
47
install_monitoring_agents = local.install_monitoring_agents
48
+ retry = local.retry
48
49
quadlet_unit = local.quadlet_unit
49
50
50
51
active_active = var.operational_mode == " active-active"
Original file line number Diff line number Diff line change @@ -16,8 +16,8 @@ function install_packages {
16
16
systemctl start firewalld
17
17
%{ else ~}
18
18
echo "[$(date +"%FT%T")] [Terraform Enterprise] Install unzip with apt-get" | tee -a $log_pathname
19
- apt-get update -y
20
- apt-get install -y unzip
19
+ retry 5 apt-get update -y
20
+ retry 5 apt-get install -y unzip
21
21
%{ endif ~}
22
22
23
23
echo "[$(date +"%FT%T")] [Terraform Enterprise] Install AWS CLI" | tee -a $log_pathname
@@ -39,4 +39,4 @@ function install_packages {
39
39
install_packages () {
40
40
:
41
41
}
42
- %{ endif ~}
42
+ %{ endif ~}
Original file line number Diff line number Diff line change
1
+ # Retry a command up to a specific numer of times until it exits successfully,
2
+ # with exponential back off.
3
+ #
4
+ # $ retry 5 echo Hello
5
+
6
+ function retry {
7
+ local retries=$1
8
+ shift
9
+
10
+ local count=0
11
+ until "$@"; do
12
+ exit=$?
13
+ wait=$((2 ** $count))
14
+ count=$(($count + 1))
15
+ if [ $count -lt $retries ]; then
16
+ echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
17
+ sleep $wait
18
+ else
19
+ echo "Retry $count/$retries exited $exit, no more retries left."
20
+ return $exit
21
+ fi
22
+ done
23
+ return 0
24
+
25
+ }
Original file line number Diff line number Diff line change 1
1
#! /usr/bin/env bash
2
2
set -eu pipefail
3
-
3
+ ${retry}
4
4
${get_base64_secrets}
5
5
${install_packages}
6
6
%{ if enable_monitoring ~ }
Original file line number Diff line number Diff line change @@ -16,4 +16,8 @@ locals {
16
16
distribution = var.distribution
17
17
enable_monitoring = var.enable_monitoring != null ? var.enable_monitoring : false
18
18
})
19
+
20
+ retry = templatefile (" ${ path . module } /templates/retry.func" , {
21
+ cloud = var.cloud
22
+ })
19
23
}
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ locals {
11
11
get_base64_secrets = local.get_base64_secrets
12
12
install_packages = local.install_packages
13
13
install_monitoring_agents = local.install_monitoring_agents
14
+ retry = local.retry
14
15
15
16
# Configuration data
16
17
active_active = var.tfe_configuration != null ? var.tfe_configuration.enable_active_active.value == " 1" ? true : false : null
Original file line number Diff line number Diff line change @@ -29,8 +29,8 @@ function install_packages {
29
29
systemctl start firewalld
30
30
%{ else ~}
31
31
echo "[$(date +"%FT%T")] [Terraform Enterprise] Install unzip with apt-get" | tee -a $log_pathname
32
- apt-get update -y
33
- apt-get install -y unzip
32
+ retry 5 apt-get update -y
33
+ retry 5 apt-get install -y unzip
34
34
%{ endif ~}
35
35
36
36
echo "[$(date +"%FT%T")] [Terraform Enterprise] Install AWS CLI" | tee -a $log_pathname
Original file line number Diff line number Diff line change
1
+ # Retry a command up to a specific numer of times until it exits successfully,
2
+ # with exponential back off.
3
+ #
4
+ # $ retry 5 echo Hello
5
+
6
+ function retry {
7
+ local retries=$1
8
+ shift
9
+
10
+ local count=0
11
+ until "$@"; do
12
+ exit=$?
13
+ wait=$((2 ** $count))
14
+ count=$(($count + 1))
15
+ if [ $count -lt $retries ]; then
16
+ echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
17
+ sleep $wait
18
+ else
19
+ echo "Retry $count/$retries exited $exit, no more retries left."
20
+ return $exit
21
+ fi
22
+ done
23
+ return 0
24
+
25
+ }
Original file line number Diff line number Diff line change 1
1
#! /usr/bin/env bash
2
2
set -euo pipefail
3
3
4
+ ${retry}
4
5
${get_base64_secrets}
5
6
${install_packages}
6
7
${install_monitoring_agents}
You can’t perform that action at this time.
0 commit comments