|
16 | 16 |
|
17 | 17 | sed -i.bak s/__PARENT_TAG__/`echo $PARENT_TAG`/g /etc/gitlab-runner/config.toml
|
18 | 18 |
|
| 19 | +# fetch Runner token from SSM and validate it |
| 20 | +token=$(aws ssm get-parameters --names "${secure_parameter_store_runner_token_key}" --with-decryption --region "${secure_parameter_store_region}" | jq -r ".Parameters | .[0] | .Value") |
| 21 | + |
| 22 | +valid_token=true |
| 23 | +if [[ `echo $token` != "null" ]] |
| 24 | +then |
| 25 | + valid_token_response=$(curl -s -o /dev/null -w "%%{response_code}" --request POST -L "${runners_gitlab_url}/api/v4/runners/verify" --form "token=$token" ) |
| 26 | + [[ `echo $valid_token_response` != "200" ]] && valid_token=false |
| 27 | +fi |
| 28 | + |
| 29 | +if [[ `echo ${runners_token}` == "__REPLACED_BY_USER_DATA__" && `echo $token` == "null" ]] || [[ `echo $valid_token` == "false" ]] |
| 30 | +then |
| 31 | + token=$(curl --request POST -L "${runners_gitlab_url}/api/v4/runners" \ |
| 32 | + --form "token=${gitlab_runner_registration_token}" \ |
| 33 | + --form "tag_list=${gitlab_runner_tag_list}" \ |
| 34 | + --form "description=${giltab_runner_description}" \ |
| 35 | + --form "locked=${gitlab_runner_locked_to_project}" \ |
| 36 | + --form "run_untagged=${gitlab_runner_run_untagged}" \ |
| 37 | + --form "maximum_timeout=${gitlab_runner_maximum_timeout}" \ |
| 38 | + --form "access_level=${gitlab_runner_access_level}" \ |
| 39 | + | jq -r .token) |
| 40 | + aws ssm put-parameter --overwrite --type SecureString --name "${secure_parameter_store_runner_token_key}" --value="$token" --region "${secure_parameter_store_region}" |
| 41 | +fi |
| 42 | + |
| 43 | +sed -i.bak s/__REPLACED_BY_USER_DATA__/`echo $token`/g /etc/gitlab-runner/config.toml |
| 44 | + |
| 45 | +ssm_sentry_dsn=$(aws ssm get-parameters --names "${secure_parameter_store_runner_sentry_dsn}" --with-decryption --region "${secure_parameter_store_region}" | jq -r ".Parameters | .[0] | .Value") |
| 46 | +if [[ `echo ${sentry_dsn}` == "__SENTRY_DSN_REPLACED_BY_USER_DATA__" && `echo $ssm_sentry_dsn` == "null" ]] |
| 47 | +then |
| 48 | + ssm_sentry_dsn="" |
| 49 | +fi |
| 50 | + |
| 51 | +# For those of you wondering why commas are used in the sed below instead of forward slashes, see https://stackoverflow.com/a/16778711/13169919 |
| 52 | +# It is because the Sentry DSN contains forward slashes as it is an URL so it would break out of the sed command with forward slashes as delimiters :) |
| 53 | +sed -i.bak s,__SENTRY_DSN_REPLACED_BY_USER_DATA__,`echo $ssm_sentry_dsn`,g /etc/gitlab-runner/config.toml |
| 54 | + |
19 | 55 | ${pre_install}
|
20 | 56 |
|
21 | 57 | if [[ `echo ${runners_executor}` == "docker" ]]
|
@@ -67,42 +103,6 @@ docker-machine rm -y dummy-machine
|
67 | 103 | unset HOME
|
68 | 104 | unset USER
|
69 | 105 |
|
70 |
| -# fetch Runner token from SSM and validate it |
71 |
| -token=$(aws ssm get-parameters --names "${secure_parameter_store_runner_token_key}" --with-decryption --region "${secure_parameter_store_region}" | jq -r ".Parameters | .[0] | .Value") |
72 |
| - |
73 |
| -valid_token=true |
74 |
| -if [[ `echo $token` != "null" ]] |
75 |
| -then |
76 |
| - valid_token_response=$(curl -s -o /dev/null -w "%%{response_code}" --request POST -L "${runners_gitlab_url}/api/v4/runners/verify" --form "token=$token" ) |
77 |
| - [[ `echo $valid_token_response` != "200" ]] && valid_token=false |
78 |
| -fi |
79 |
| - |
80 |
| -if [[ `echo ${runners_token}` == "__REPLACED_BY_USER_DATA__" && `echo $token` == "null" ]] || [[ `echo $valid_token` == "false" ]] |
81 |
| -then |
82 |
| - token=$(curl --request POST -L "${runners_gitlab_url}/api/v4/runners" \ |
83 |
| - --form "token=${gitlab_runner_registration_token}" \ |
84 |
| - --form "tag_list=${gitlab_runner_tag_list}" \ |
85 |
| - --form "description=${giltab_runner_description}" \ |
86 |
| - --form "locked=${gitlab_runner_locked_to_project}" \ |
87 |
| - --form "run_untagged=${gitlab_runner_run_untagged}" \ |
88 |
| - --form "maximum_timeout=${gitlab_runner_maximum_timeout}" \ |
89 |
| - --form "access_level=${gitlab_runner_access_level}" \ |
90 |
| - | jq -r .token) |
91 |
| - aws ssm put-parameter --overwrite --type SecureString --name "${secure_parameter_store_runner_token_key}" --value="$token" --region "${secure_parameter_store_region}" |
92 |
| -fi |
93 |
| - |
94 |
| -sed -i.bak s/__REPLACED_BY_USER_DATA__/`echo $token`/g /etc/gitlab-runner/config.toml |
95 |
| - |
96 |
| -ssm_sentry_dsn=$(aws ssm get-parameters --names "${secure_parameter_store_runner_sentry_dsn}" --with-decryption --region "${secure_parameter_store_region}" | jq -r ".Parameters | .[0] | .Value") |
97 |
| -if [[ `echo ${sentry_dsn}` == "__SENTRY_DSN_REPLACED_BY_USER_DATA__" && `echo $ssm_sentry_dsn` == "null" ]] |
98 |
| -then |
99 |
| - ssm_sentry_dsn="" |
100 |
| -fi |
101 |
| - |
102 |
| -# For those of you wondering why commas are used in the sed below instead of forward slashes, see https://stackoverflow.com/a/16778711/13169919 |
103 |
| -# It is because the Sentry DSN contains forward slashes as it is an URL so it would break out of the sed command with forward slashes as delimiters :) |
104 |
| -sed -i.bak s,__SENTRY_DSN_REPLACED_BY_USER_DATA__,`echo $ssm_sentry_dsn`,g /etc/gitlab-runner/config.toml |
105 |
| - |
106 | 106 | # A small script to remove this runner from being registered with Gitlab.
|
107 | 107 | cat <<REM > /etc/rc.d/init.d/remove_gitlab_registration
|
108 | 108 | #!/bin/bash
|
|
0 commit comments