From 5ab4352516177d95bc6648cdf3e1b8fd3bf4a051 Mon Sep 17 00:00:00 2001 From: Brian Vu Date: Wed, 31 May 2023 22:11:25 -0700 Subject: [PATCH 01/16] chore: rename orb variables using orb standards --- src/commands/deploy_ecs_scheduled_task.yml | 2 +- src/commands/install_ecs_cli.yml | 6 +- src/commands/run_task.yml | 42 ++++----- src/commands/update_service.yml | 36 ++++---- src/commands/update_task_definition.yml | 20 ++--- .../update_task_definition_from_json.yml | 6 +- src/commands/verify_revision_is_deployed.yml | 18 ++-- src/jobs/deploy_service_update.yml | 4 +- src/jobs/run_task.yml | 4 +- src/jobs/update_task_definition.yml | 4 +- src/jobs/update_task_definition_from_json.yml | 4 +- src/scripts/deploy_ecs_scheduled_task.sh | 8 +- src/scripts/get_prev_task.sh | 25 +++--- src/scripts/install_ecs_cli.sh | 17 ++-- src/scripts/register_new_task_def.sh | 11 +-- src/scripts/run_task.sh | 85 ++++++++++--------- .../update_bluegreen_service_via_task_def.sh | 32 +++---- src/scripts/update_service_via_task_def.sh | 25 +++--- .../update_task_definition_from_json.sh | 13 ++- src/scripts/verify_revision_is_deployed.sh | 57 ++++++------- 20 files changed, 210 insertions(+), 209 deletions(-) diff --git a/src/commands/deploy_ecs_scheduled_task.yml b/src/commands/deploy_ecs_scheduled_task.yml index 0cbc274d..61b66e5f 100644 --- a/src/commands/deploy_ecs_scheduled_task.yml +++ b/src/commands/deploy_ecs_scheduled_task.yml @@ -9,5 +9,5 @@ steps: - run: name: Deploy rule with updated task definition environment: - ECS_PARAM_RULE_NAME: <> + ORB_EVAL_RULE_NAME: <> command: <> diff --git a/src/commands/install_ecs_cli.yml b/src/commands/install_ecs_cli.yml index 4ce00d7e..51d6fcb8 100644 --- a/src/commands/install_ecs_cli.yml +++ b/src/commands/install_ecs_cli.yml @@ -20,7 +20,7 @@ steps: - run: name: Install AWS ECS CLI environment: - ECS_PARAM_VERSION: <> - ECS_PARAM_INSTALL_DIR: <> - ECS_PARAM_OVERRIDE_INSTALLED: <> + ORB_EVAL_VERSION: <> + ORB_EVAL_INSTALL_DIR: <> + ORB_VAL_OVERRIDE_INSTALLED: <> command: <> diff --git a/src/commands/run_task.yml b/src/commands/run_task.yml index 8254ddbd..9c1a29ba 100755 --- a/src/commands/run_task.yml +++ b/src/commands/run_task.yml @@ -112,7 +112,7 @@ parameters: profile_name: description: AWS profile name to be configured. type: string - default: '' + default: "default" run_task_output: description: | Specifies a local json file to save the output logs from the aws ecs run_task command. Use tools like JQ to read and parse this information such as "task-arns" and "task-ids" @@ -123,23 +123,23 @@ steps: name: Run Task command: <> environment: - ECS_PARAM_CLUSTER_NAME: <> - ECS_PARAM_TASK_DEF: <> - ECS_PARAM_COUNT: <> - ECS_PARAM_STARTED_BY: <> - ECS_PARAM_GROUP: <> - ECS_PARAM_PLACEMENT_CONSTRAINTS: <> - ECS_PARAM_PLACEMENT_STRATEGY: <> - ECS_PARAM_LAUNCH_TYPE: <> - ECS_PARAM_PLATFORM_VERSION: <> - ECS_PARAM_AWSVPC: <> - ECS_PARAM_SUBNET_ID: <> - ECS_PARAM_SEC_GROUP_ID: <> - ECS_PARAM_ASSIGN_PUB_IP: <> - ECS_PARAM_OVERRIDES: <> - ECS_PARAM_TAGS: <> - ECS_PARAM_ENABLE_ECS_MANAGED_TAGS: <> - ECS_PARAM_PROPAGATE_TAGS: <> - ECS_PARAM_CD_CAPACITY_PROVIDER_STRATEGY: <> - ECS_PARAM_PROFILE_NAME: <> - ECS_PARAM_RUN_TASK_OUTPUT: <> + ORB_EVAL_CLUSTER_NAME: <> + ORB_EVAL_TASK_DEF: <> + ORB_VAL_COUNT: <> + ORB_EVAL_STARTED_BY: <> + ORB_EVAL_GROUP: <> + ORB_EVAL_PLACEMENT_CONSTRAINTS: <> + ORB_EVAL_PLACEMENT_STRATEGY: <> + ORB_VAL_LAUNCH_TYPE: <> + ORB_EVAL_PLATFORM_VERSION: <> + ORB_VAL_AWSVPC: <> + ORB_EVAL_SUBNET_ID: <> + ORB_EVAL_SEC_GROUP_ID: <> + ORB_VAL_ASSIGN_PUB_IP: <> + ORB_EVAL_OVERRIDES: <> + ORB_EVAL_TAGS: <> + ORB_VAL_ENABLE_ECS_MANAGED_TAGS: <> + ORB_VAL_PROPAGATE_TAGS: <> + ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY: <> + ORB_EVAL_PROFILE_NAME: <> + ORB_EVAL_RUN_TASK_OUTPUT: <> diff --git a/src/commands/update_service.yml b/src/commands/update_service.yml index 5fe71307..7dd1fddb 100644 --- a/src/commands/update_service.yml +++ b/src/commands/update_service.yml @@ -159,7 +159,7 @@ parameters: profile_name: description: AWS profile name to be configured. type: string - default: '' + default: "default" codedeploy_capacity_provider_name: description: > The name of AWS Capacity Provider to be added to CodeDeploy deployment. @@ -230,17 +230,17 @@ steps: no_output_timeout: << parameters.verification_timeout >> environment: DEPLOYMENT_CONTROLLER: <> - ECS_PARAM_CD_APP_NAME: <> - ECS_PARAM_CD_DEPLOY_GROUP_NAME: <> - ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_NAME: <> - ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_PORT: <> - ECS_PARAM_VERIFY_REV_DEPLOY: <> - ECS_PARAM_PROFILE_NAME: <> - ECS_PARAM_ENABLE_CIRCUIT_BREAKER: <> - ECS_PARAM_CD_CAPACITY_PROVIDER_NAME: <> - ECS_PARAM_CD_CAPACITY_PROVIDER_WEIGHT: <> - ECS_PARAM_CD_CAPACITY_PROVIDER_BASE: <> - ECS_PARAM_CD_DEPLOYMENT_CONFIG_NAME: <> + ORB_EVAL_CD_APP_NAME: <> + ORB_EVAL_CD_DEPLOY_GROUP_NAME: <> + ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME: <> + ORB_VAL_CD_LOAD_BALANCED_CONTAINER_PORT: <> + ORB_VAL_VERIFY_REV_DEPLOY: <> + ORB_EVAL_PROFILE_NAME: <> + ORB_VAL_ENABLE_CIRCUIT_BREAKER: <> + ORB_EVAL_CD_CAPACITY_PROVIDER_NAME: <> + ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT: <> + ORB_EVAL_CD_CAPACITY_PROVIDER_BASE: <> + ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME: <> - when: condition: @@ -252,12 +252,12 @@ steps: name: Update service with registered task definition command: <> environment: - ECS_PARAM_SERVICE_NAME: <> - ECS_PARAM_FAMILY: <> - ECS_PARAM_FORCE_NEW_DEPLOY: <> - ECS_PARAM_CLUSTER_NAME: <> - ECS_PARAM_PROFILE_NAME: <> - ECS_PARAM_ENABLE_CIRCUIT_BREAKER: <> + ORB_EVAL_SERVICE_NAME: <> + ORB_EVAL_FAMILY: <> + ORB_VAL_FORCE_NEW_DEPLOY: <> + ORB_EVAL_CLUSTER_NAME: <> + ORB_EVAL_PROFILE_NAME: <> + ORB_VAL_ENABLE_CIRCUIT_BREAKER: <> - when: condition: diff --git a/src/commands/update_task_definition.yml b/src/commands/update_task_definition.yml index e2c203fb..8b0158e8 100644 --- a/src/commands/update_task_definition.yml +++ b/src/commands/update_task_definition.yml @@ -59,7 +59,7 @@ parameters: profile_name: description: AWS profile name to be configured. type: string - default: '' + default: "default" previous_revision_number: description: Optional previous task's revision number type: string @@ -69,18 +69,18 @@ steps: name: Retrieve previous task definition and prepare new task definition values command: <> environment: - ECS_PARAM_FAMILY: <> - ECS_PARAM_CONTAINER_IMAGE_NAME_UPDATES: <> - ECS_PARAM_CONTAINER_ENV_VAR_UPDATES: <> + ORB_EVAL_FAMILY: <> + ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES: <> + ORB_EVAL_CONTAINER_ENV_VAR_UPDATE: <> ECS_SCRIPT_UPDATE_CONTAINER_DEFS: <> ECS_SCRIPT_GET_TASK_DFN_VAL: <> - ECS_PARAM_PROFILE_NAME: <> - ECS_PARAM_PREVIOUS_REVISION_NUMBER: <> - ECS_PARAM_CONTAINER_SECRET_UPDATES: <> - ECS_PARAM_CONTAINER_DOCKER_LABEL_UPDATES: << parameters.container_docker_label_updates >> + ORB_EVAL_PROFILE_NAME: <> + ORB_EVAL_PREVIOUS_REVISION_NUMBER: <> + ORB_EVAL_CONTAINER_SECRET_UPDATES: <> + ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES: << parameters.container_docker_label_updates >> - run: name: Register new task definition command: <> environment: - ECS_PARAM_FAMILY: <> - ECS_PARAM_PROFILE_NAME: <> + ORB_EVAL_FAMILY: <> + ORB_EVAL_PROFILE_NAME: <> diff --git a/src/commands/update_task_definition_from_json.yml b/src/commands/update_task_definition_from_json.yml index e63595fb..866413d3 100644 --- a/src/commands/update_task_definition_from_json.yml +++ b/src/commands/update_task_definition_from_json.yml @@ -7,11 +7,11 @@ parameters: profile_name: description: AWS profile name to be configured. type: string - default: '' + default: "default" steps: - run: name: Register new task definition command: <> environment: - ECS_PARAM_TASK_DEFINITION_JSON: <> - ECS_PARAM_PROFILE_NAME: <> + ORB_EVAL_TASK_DEFINITION_JSON: <> + ORB_EVAL_PROFILE_NAME: <> diff --git a/src/commands/verify_revision_is_deployed.yml b/src/commands/verify_revision_is_deployed.yml index 019e98e8..d3c2bd5f 100644 --- a/src/commands/verify_revision_is_deployed.yml +++ b/src/commands/verify_revision_is_deployed.yml @@ -33,7 +33,7 @@ parameters: profile_name: description: AWS profile name to be configured. type: string - default: '' + default: "default" steps: - run: name: Verify that the revision is deployed and older revisions are stopped @@ -41,11 +41,11 @@ steps: Poll the deployment status at intervals till the given task definition revision has reached its desired running task count and is the only one deployed for the service. command: <> environment: - ECS_PARAM_SERVICE_NAME: <> - ECS_PARAM_FAMILY: <> - ECS_PARAM_TASK_DEF_ARN: <> - ECS_PARAM_MAX_POLL_ATTEMPTS: <> - ECS_PARAM_CLUSTER_NAME: <> - ECS_PARAM_POLL_INTERVAL: <> - ECS_PARAM_FAIL_ON_VERIFY_TIMEOUT: <> - ECS_PARAM_PROFILE_NAME: <> + ORB_EVAL_SERVICE_NAME: <> + ORB_EVAL_FAMILY: <> + ORB_EVAL_TASK_DEF_ARN: <> + ORB_VAL_MAX_POLL_ATTEMPTS: <> + ORB_EVAL_CLUSTER_NAME: <> + ORB_VAL_POLL_INTERVAL: <> + ORB_VAL_FAIL_ON_VERIFY_TIMEOUT: <> + ORB_EVAL_PROFILE_NAME: <> diff --git a/src/jobs/deploy_service_update.yml b/src/jobs/deploy_service_update.yml index a45396d8..89980ef2 100644 --- a/src/jobs/deploy_service_update.yml +++ b/src/jobs/deploy_service_update.yml @@ -10,8 +10,8 @@ parameters: default: 'cimg/python:3.10.4' aws_region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. - type: env_var_name - default: AWS_DEFAULT_REGION + type: string + default: ${AWS_DEFAULT_REGION} profile_name: description: AWS profile name to be configured. type: string diff --git a/src/jobs/run_task.yml b/src/jobs/run_task.yml index 1929288a..738f18d1 100755 --- a/src/jobs/run_task.yml +++ b/src/jobs/run_task.yml @@ -10,8 +10,8 @@ parameters: default: 'cimg/python:3.10.4' aws_region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. - type: env_var_name - default: AWS_DEFAULT_REGION + type: string + default: ${AWS_DEFAULT_REGION} profile_name: description: AWS profile name to be configured. type: string diff --git a/src/jobs/update_task_definition.yml b/src/jobs/update_task_definition.yml index 66418cb7..b02c4bc7 100644 --- a/src/jobs/update_task_definition.yml +++ b/src/jobs/update_task_definition.yml @@ -10,8 +10,8 @@ parameters: default: 'cimg/python:3.10.4' aws_region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. - type: env_var_name - default: AWS_DEFAULT_REGION + type: string + default: ${AWS_DEFAULT_REGION} profile_name: description: AWS profile name to be configured. type: string diff --git a/src/jobs/update_task_definition_from_json.yml b/src/jobs/update_task_definition_from_json.yml index 19ba2fff..d3a7c51d 100644 --- a/src/jobs/update_task_definition_from_json.yml +++ b/src/jobs/update_task_definition_from_json.yml @@ -9,8 +9,8 @@ parameters: default: 'cimg/python:3.10.4' aws_region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. - type: env_var_name - default: AWS_DEFAULT_REGION + type: string + default: ${AWS_DEFAULT_REGION} profile_name: description: AWS profile name to be configured. type: string diff --git a/src/scripts/deploy_ecs_scheduled_task.sh b/src/scripts/deploy_ecs_scheduled_task.sh index c5df7e4f..0e0249b8 100644 --- a/src/scripts/deploy_ecs_scheduled_task.sh +++ b/src/scripts/deploy_ecs_scheduled_task.sh @@ -5,15 +5,17 @@ if [ -z "$td_arn" ]; then exit 1 fi +ORB_EVAL_RULE_NAME=$(circleci env subst "${ORB_EVAL_RULE_NAME}") + CLI_OUTPUT_FILE=$(mktemp cli-output.json.XXXX) CLI_INPUT_FILE=$(mktemp cli-input.json.XXXX) -aws events list-targets-by-rule --rule "$ECS_PARAM_RULE_NAME" --output json > "$CLI_OUTPUT_FILE" +aws events list-targets-by-rule --rule "$ORB_EVAL_RULE_NAME" --output json > "$CLI_OUTPUT_FILE" if < "$CLI_OUTPUT_FILE" jq ' .Targets[] | has("EcsParameters")' | grep "false"; then - echo "Invalid ECS Rule. $ECS_PARAM_RULE_NAME does not contain EcsParameters key. Please create a valid ECS Rule and try again" + echo "Invalid ECS Rule. $ORB_EVAL_RULE_NAME does not contain EcsParameters key. Please create a valid ECS Rule and try again" exit 1 fi < "$CLI_OUTPUT_FILE" jq --arg td_arn "$td_arn" '.Targets[].EcsParameters.TaskDefinitionArn |= $td_arn' > "$CLI_INPUT_FILE" -aws events put-targets --rule $ECS_PARAM_RULE_NAME --cli-input-json "$(cat "$CLI_INPUT_FILE")" +aws events put-targets --rule $ORB_EVAL_RULE_NAME --cli-input-json "$(cat "$CLI_INPUT_FILE")" diff --git a/src/scripts/get_prev_task.sh b/src/scripts/get_prev_task.sh index 169100f3..2fbd7866 100644 --- a/src/scripts/get_prev_task.sh +++ b/src/scripts/get_prev_task.sh @@ -1,25 +1,22 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ECS_PARAM_FAMILY=$(eval echo "$ECS_PARAM_FAMILY") -ECS_PARAM_CONTAINER_IMAGE_NAME_UPDATES=$(eval echo "$ECS_PARAM_CONTAINER_IMAGE_NAME_UPDATES") -ECS_PARAM_CONTAINER_ENV_VAR_UPDATES=$(eval echo "$ECS_PARAM_CONTAINER_ENV_VAR_UPDATES") -ECS_PARAM_PROFILE_NAME=$(eval echo "$ECS_PARAM_PROFILE_NAME") -ECS_PARAM_CONTAINER_SECRET_UPDATES=$(eval echo "$ECS_PARAM_CONTAINER_SECRET_UPDATES") -ECS_PARAM_CONTAINER_DOCKER_LABEL_UPDATES=$(eval echo "$ECS_PARAM_CONTAINER_DOCKER_LABEL_UPDATES") - -if [ -n "${ECS_PARAM_PROFILE_NAME}" ]; then - set -- "$@" --profile "${ECS_PARAM_PROFILE_NAME}" -fi +ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") +ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES=$(eval echo "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES") +ORB_EVAL_CONTAINER_ENV_VAR_UPDATE=$(eval echo "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE") +ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_CONTAINER_SECRET_UPDATES=$(eval echo "$ORB_EVAL_CONTAINER_SECRET_UPDATES") +ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES=$(eval echo "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES") +ORB_EVAL_PREVIOUS_REVISION_NUMBER=$(eval echo "$ORB_EVAL_PREVIOUS_REVISION_NUMBER") if [ -z "${ECS_PARAM_PREVIOUS_REVISION}" ]; then - ECS_TASK_DEFINITION_NAME="$ECS_PARAM_FAMILY" + ECS_TASK_DEFINITION_NAME="$ORB_EVAL_FAMILY" else - ECS_TASK_DEFINITION_NAME="$ECS_PARAM_FAMILY:$ECS_PARAM_PREVIOUS_REVISION_NUMBER" + ECS_TASK_DEFINITION_NAME="$ORB_EVAL_FAMILY:$ORB_EVAL_PREVIOUS_REVISION_NUMBER" fi # shellcheck disable=SC2034 -PREVIOUS_TASK_DEFINITION=$(aws ecs describe-task-definition --task-definition "${ECS_TASK_DEFINITION_NAME}" --include TAGS "$@") +PREVIOUS_TASK_DEFINITION=$(aws ecs describe-task-definition --task-definition "${ECS_TASK_DEFINITION_NAME}" --include TAGS --profile "${ORB_EVAL_PROFILE_NAME}" "$@") # Prepare script for updating container definitions @@ -30,7 +27,7 @@ cat <<< "$ECS_SCRIPT_UPDATE_CONTAINER_DEFS" > "$UPDATE_CONTAINER_DEFS_SCRIPT_FIL # Prepare container definitions -CONTAINER_DEFS=$(python "$UPDATE_CONTAINER_DEFS_SCRIPT_FILE" "$PREVIOUS_TASK_DEFINITION" "$ECS_PARAM_CONTAINER_IMAGE_NAME_UPDATES" "$ECS_PARAM_CONTAINER_ENV_VAR_UPDATES" "$ECS_PARAM_CONTAINER_SECRET_UPDATES" "$ECS_PARAM_CONTAINER_DOCKER_LABEL_UPDATES") +CONTAINER_DEFS=$(python "$UPDATE_CONTAINER_DEFS_SCRIPT_FILE" "$PREVIOUS_TASK_DEFINITION" "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES" "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE" "$ORB_EVAL_CONTAINER_SECRET_UPDATES" "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES") # Escape single quotes from environment variables for BASH_ENV diff --git a/src/scripts/install_ecs_cli.sh b/src/scripts/install_ecs_cli.sh index 5342fa22..437a45bc 100644 --- a/src/scripts/install_ecs_cli.sh +++ b/src/scripts/install_ecs_cli.sh @@ -1,14 +1,17 @@ if [ $EUID == 0 ]; then export SUDO=""; else export SUDO="sudo"; fi +ORB_EVAL_VERSION=$(circleci env subst "${ORB_EVAL_VERSION}") +ORB_EVAL_INSTALL_DIR=$(circleci env subst "${ORB_EVAL_INSTALL_DIR}") + # Platform check if uname -a | grep "Darwin"; then export SYS_ENV_PLATFORM="darwin" MACOS_VERSION=$(sw_vers -productVersion | cut -d. -f1) - DELIMIT_VERSION=$(echo "$ECS_PARAM_VERSION" | cut -dv -f2) + DELIMIT_VERSION=$(echo "$ORB_EVAL_VERSION" | cut -dv -f2) MAJOR=$(echo "$DELIMIT_VERSION" | cut -d. -f1) MINOR=$(echo "$DELIMIT_VERSION" | cut -d. -f2) if [ "$MACOS_VERSION" -ge "12" ] && [ "$MAJOR" -le "1" ] && [ "$MINOR" -lt "9" ]; then - echo "Error: ECS CLI version ${ECS_PARAM_VERSION} is not supported with macOS version ${MACOS_VERSION}. Please upgrade to macOS version 1.9 or later." + echo "Error: ECS CLI version ${ORB_EVAL_VERSION} is not supported with macOS version ${MACOS_VERSION}. Please upgrade to macOS version 1.9 or later." exit 1 fi elif uname -a | grep "x86_64 GNU/Linux"; then @@ -20,8 +23,8 @@ else fi Install_ECS_CLI(){ - $SUDO curl -Lo "${ECS_PARAM_INSTALL_DIR}" "https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-${SYS_ENV_PLATFORM}-amd64-$1" - $SUDO chmod +x "${ECS_PARAM_INSTALL_DIR}" + $SUDO curl -Lo "${ORB_EVAL_INSTALL_DIR}" "https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-${SYS_ENV_PLATFORM}-amd64-$1" + $SUDO chmod +x "${ORB_EVAL_INSTALL_DIR}" } Uninstall_ECS_CLI(){ @@ -32,13 +35,13 @@ Uninstall_ECS_CLI(){ if ! command -v ecs-cli; then echo "Installing ECS CLI..." - Install_ECS_CLI "${ECS_PARAM_VERSION}" + Install_ECS_CLI "${ORB_EVAL_VERSION}" ecs-cli --version else - if [ "$ECS_PARAM_OVERRIDE_INSTALLED" = 1 ]; then + if [ "$ORB_VAL_OVERRIDE_INSTALLED" = 1 ]; then echo "Overriding installed ECS CLI..." Uninstall_ECS_CLI - Install_ECS_CLI "${ECS_PARAM_VERSION}" + Install_ECS_CLI "${ORB_EVAL_VERSION}" ecs-cli --version else echo "ECS CLI is already installed." diff --git a/src/scripts/register_new_task_def.sh b/src/scripts/register_new_task_def.sh index 2df212d5..91c6259d 100644 --- a/src/scripts/register_new_task_def.sh +++ b/src/scripts/register_new_task_def.sh @@ -1,8 +1,8 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ECS_PARAM_FAMILY=$(eval echo "$ECS_PARAM_FAMILY") -ECS_PARAM_PROFILE_NAME=$(eval echo "$ECS_PARAM_PROFILE_NAME") +ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") +ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") if [ -n "${CCI_ORB_AWS_ECS_TASK_ROLE}" ]; then set -- "$@" --task-role-arn "${CCI_ORB_AWS_ECS_TASK_ROLE}" @@ -53,10 +53,6 @@ if [ -n "${CCI_ORB_AWS_ECS_PROXY_CONFIGURATION}" ] && [ "${CCI_ORB_AWS_ECS_PROXY set -- "$@" --proxy-configuration "${CCI_ORB_AWS_ECS_PROXY_CONFIGURATION}" fi -if [ -n "${ECS_PARAM_PROFILE_NAME}" ]; then - set -- "$@" --profile "${ECS_PARAM_PROFILE_NAME}" -fi - if [ -n "${CCI_ORB_AWS_ECS_RUNTIME_PLATFORM}" ] && [ "${CCI_ORB_AWS_ECS_RUNTIME_PLATFORM}" != "{}" ]; then set -- "$@" --runtime-platform "${CCI_ORB_AWS_ECS_RUNTIME_PLATFORM}" fi @@ -66,8 +62,9 @@ if [ -n "${CCI_ORB_AWS_ECS_EPHEMERAL_STORAGE}" ] && [ "${CCI_ORB_AWS_ECS_EPHEMER fi REVISION=$(aws ecs register-task-definition \ - --family "$ECS_PARAM_FAMILY" \ + --family "$ORB_EVAL_FAMILY" \ --container-definitions "${CCI_ORB_AWS_ECS_CONTAINER_DEFS}" \ + --profile "${ORB_EVAL_PROFILE_NAME}" \ "$@" \ --output text \ --query 'taskDefinition.taskDefinitionArn') diff --git a/src/scripts/run_task.sh b/src/scripts/run_task.sh index 0faec3b2..c24316a6 100644 --- a/src/scripts/run_task.sh +++ b/src/scripts/run_task.sh @@ -1,101 +1,106 @@ if [[ $EUID == 0 ]]; then export SUDO=""; else export SUDO="sudo"; fi # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ECS_PARAM_CLUSTER_NAME=$(eval echo "$ECS_PARAM_CLUSTER_NAME") -ECS_PARAM_TASK_DEF=$(eval echo "$ECS_PARAM_TASK_DEF") -ECS_PARAM_PROFILE_NAME=$(eval echo "$ECS_PARAM_PROFILE_NAME") +ORB_EVAL_CLUSTER_NAME=$(eval echo "$ORB_EVAL_CLUSTER_NAME") +ORB_EVAL_TASK_DEF=$(eval echo "$ORB_EVAL_TASK_DEF") +ORB_EVAL_STARTED_BY=$(eval echo "$ORB_EVAL_STARTED_BY") +ORB_EVAL_GROUP=$(eval echo "$ORB_EVAL_GROUP") +ORB_EVAL_PLACEMENT_STRATEGY=$(eval echo "$ORB_EVAL_PLACEMENT_STRATEGY") +ORB_EVAL_PLACEMENT_CONSTRAINTS=$(eval echo "$ORB_EVAL_PLACEMENT_CONSTRAINTS") +ORB_EVAL_PLATFORM_VERSION=$(eval echo "$ORB_EVAL_PLATFORM_VERSION") +ORB_EVAL_TAGS=$(eval echo "$ORB_EVAL_TAGS") +ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY=$(eval echo "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY") +ORB_EVAL_RUN_TASK_OUTPUT=$(eval echo "$ORB_EVAL_RUN_TASK_OUTPUT") +ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") -if ! command -v envsubst && [[ "$ECS_PARAM_OVERRIDES" == *"\${"* ]]; then +if ! command -v envsubst && [[ "$ORB_EVAL_OVERRIDES" == *"\${"* ]]; then echo "Installing envsubst." curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-"$(uname -s)"-"$(uname -m)" -o envsubst $SUDO chmod +x envsubst $SUDO mv envsubst /usr/local/bin - ECS_PARAM_OVERRIDES=$(echo "${ECS_PARAM_OVERRIDES}" | envsubst) + ORB_EVAL_OVERRIDES=$(echo "${ORB_EVAL_OVERRIDES}" | envsubst) fi set -o noglob -if [ -n "$ECS_PARAM_PLATFORM_VERSION" ]; then +if [ -n "$ORB_EVAL_PLATFORM_VERSION" ]; then echo "Setting --platform-version" - set -- "$@" --platform-version "$ECS_PARAM_PLATFORM_VERSION" + set -- "$@" --platform-version "$ORB_EVAL_PLATFORM_VERSION" fi -if [ -n "$ECS_PARAM_STARTED_BY" ]; then +if [ -n "$ORB_EVAL_STARTED_BY" ]; then echo "Setting --started-by" - set -- "$@" --started-by "$ECS_PARAM_STARTED_BY" + set -- "$@" --started-by "$ORB_EVAL_STARTED_BY" fi -if [ -n "$ECS_PARAM_GROUP" ]; then +if [ -n "$ORB_EVAL_GROUP" ]; then echo "Setting --group" - set -- "$@" --group "$ECS_PARAM_GROUP" + set -- "$@" --group "$ORB_EVAL_GROUP" fi -if [ -n "$ECS_PARAM_OVERRIDES" ]; then +if [ -n "$ORB_EVAL_OVERRIDES" ]; then echo "Setting --overrides" - set -- "$@" --overrides "$ECS_PARAM_OVERRIDES" + set -- "$@" --overrides "$ORB_EVAL_OVERRIDES" fi -if [ -n "$ECS_PARAM_TAGS" ]; then +if [ -n "$ORB_EVAL_TAGS" ]; then echo "Setting --tags" - set -- "$@" --tags "$ECS_PARAM_TAGS" + set -- "$@" --tags "$ORB_EVAL_TAGS" fi -if [ -n "$ECS_PARAM_PLACEMENT_CONSTRAINTS" ]; then +if [ -n "$ORB_EVAL_PLACEMENT_CONSTRAINTS" ]; then echo "Setting --placement-constraints" - set -- "$@" --placement-constraints "$ECS_PARAM_PLACEMENT_CONSTRAINTS" + set -- "$@" --placement-constraints "$ORB_EVAL_PLACEMENT_CONSTRAINTS" fi -if [ -n "$ECS_PARAM_PLACEMENT_STRATEGY" ]; then +if [ -n "$ORB_EVAL_PLACEMENT_STRATEGY" ]; then echo "Setting --placement-strategy" - set -- "$@" --placement-strategy "$ECS_PARAM_PLACEMENT_STRATEGY" + set -- "$@" --placement-strategy "$ORB_EVAL_PLACEMENT_STRATEGY" fi -if [ "$ECS_PARAM_ENABLE_ECS_MANAGED_TAGS" == "1" ]; then +if [ "$ORB_VAL_ENABLE_ECS_MANAGED_TAGS" == "1" ]; then echo "Setting --enable-ecs-managed-tags" set -- "$@" --enable-ecs-managed-tags fi -if [ "$ECS_PARAM_PROPAGATE_TAGS" == "1" ]; then +if [ "$ORB_VAL_PROPAGATE_TAGS" == "1" ]; then echo "Setting --propagate-tags" set -- "$@" --propagate-tags "TASK_DEFINITION" fi -if [ "$ECS_PARAM_AWSVPC" == "1" ]; then +if [ "$ORB_VAL_AWSVPC" == "1" ]; then echo "Setting --network-configuration" - if [ -z "$ECS_PARAM_SUBNET_ID" ]; then + if [ -z "$ORB_EVAL_SUBNET_ID" ]; then echo '"subnet-ids" is missing.' echo 'When "awsvpc" is enabled, "subnet-ids" must be provided.' exit 1 fi - ECS_PARAM_SUBNET_ID=$(eval echo "$ECS_PARAM_SUBNET_ID") - ECS_PARAM_SEC_GROUP_ID=$(eval echo "$ECS_PARAM_SEC_GROUP_ID") - set -- "$@" --network-configuration awsvpcConfiguration="{subnets=[$ECS_PARAM_SUBNET_ID],securityGroups=[$ECS_PARAM_SEC_GROUP_ID],assignPublicIp=$ECS_PARAM_ASSIGN_PUB_IP}" + ORB_EVAL_SUBNET_ID=$(eval echo "$ORB_EVAL_SUBNET_ID") + ORB_EVAL_SEC_GROUP_ID=$(eval echo "$ORB_EVAL_SEC_GROUP_ID") + set -- "$@" --network-configuration awsvpcConfiguration="{subnets=[$ORB_EVAL_SUBNET_ID],securityGroups=[$ORB_EVAL_SEC_GROUP_ID],assignPublicIp=$ORB_VAL_ASSIGN_PUB_IP}" fi -if [ -n "$ECS_PARAM_CD_CAPACITY_PROVIDER_STRATEGY" ]; then +if [ -n "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY" ]; then echo "Setting --capacity-provider-strategy" # do not quote # shellcheck disable=SC2086 - set -- "$@" --capacity-provider-strategy $ECS_PARAM_CD_CAPACITY_PROVIDER_STRATEGY + set -- "$@" --capacity-provider-strategy $ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY fi -if [ -n "$ECS_PARAM_LAUNCH_TYPE" ]; then - if [ -n "$ECS_PARAM_CD_CAPACITY_PROVIDER_STRATEGY" ]; then +if [ -n "$ORB_VAL_LAUNCH_TYPE" ]; then + if [ -n "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY" ]; then echo "Error: " echo 'If a "capacity-provider-strategy" is specified, the "launch-type" parameter must be set to an empty string.' exit 1 else echo "Setting --launch-type" - set -- "$@" --launch-type "$ECS_PARAM_LAUNCH_TYPE" + set -- "$@" --launch-type "$ORB_VAL_LAUNCH_TYPE" fi fi -if [ -n "${ECS_PARAM_PROFILE_NAME}" ]; then - set -- "$@" --profile "${ECS_PARAM_PROFILE_NAME}" -fi echo "Setting --count" -set -- "$@" --count "$ECS_PARAM_COUNT" +set -- "$@" --count "$ORB_VAL_COUNT" echo "Setting --task-definition" -set -- "$@" --task-definition "$ECS_PARAM_TASK_DEF" +set -- "$@" --task-definition "$ORB_EVAL_TASK_DEF" echo "Setting --cluster" -set -- "$@" --cluster "$ECS_PARAM_CLUSTER_NAME" +set -- "$@" --cluster "$ORB_EVAL_CLUSTER_NAME" -if [ -n "${ECS_PARAM_RUN_TASK_OUTPUT}" ]; then +if [ -n "${ORB_EVAL_RUN_TASK_OUTPUT}" ]; then set -x - aws ecs run-task "$@" | tee "${ECS_PARAM_RUN_TASK_OUTPUT}" + aws ecs run-task --profile "${ORB_EVAL_PROFILE_NAME}" "$@" | tee "${ORB_EVAL_RUN_TASK_OUTPUT}" set +x else set -x - aws ecs run-task "$@" + aws ecs run-task --profile "${ORB_EVAL_PROFILE_NAME}" "$@" set +x fi diff --git a/src/scripts/update_bluegreen_service_via_task_def.sh b/src/scripts/update_bluegreen_service_via_task_def.sh index 5d657ca6..70281401 100644 --- a/src/scripts/update_bluegreen_service_via_task_def.sh +++ b/src/scripts/update_bluegreen_service_via_task_def.sh @@ -1,36 +1,38 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ECS_PARAM_CD_APP_NAME=$(eval echo "$ECS_PARAM_CD_APP_NAME") -ECS_PARAM_CD_DEPLOY_GROUP_NAME=$(eval echo "$ECS_PARAM_CD_DEPLOY_GROUP_NAME") -ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_NAME=$(eval echo "$ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_NAME") -ECS_PARAM_CD_DEPLOYMENT_CONFIG_NAME=$(eval echo "$ECS_PARAM_CD_DEPLOYMENT_CONFIG_NAME") +ORB_EVAL_CD_APP_NAME=$(eval echo "$ORB_EVAL_CD_APP_NAME") +ORB_EVAL_CD_DEPLOY_GROUP_NAME=$(eval echo "$ORB_EVAL_CD_DEPLOY_GROUP_NAME") +ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME=$(eval echo "$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME") +ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT=$(eval echo "$ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT") +ORB_EVAL_CD_CAPACITY_PROVIDER_BASE=$(eval echo "$ORB_EVAL_CD_CAPACITY_PROVIDER_BASE") +ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME=$(eval echo "$ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME") DEPLOYED_REVISION="${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}" -if [ "$ECS_PARAM_ENABLE_CIRCUIT_BREAKER" == "1" ] && [ "$ECS_PARAM_VERIFY_REV_DEPLOY" == "0" ]; then +if [ "$ORB_VAL_ENABLE_CIRCUIT_BREAKER" == "1" ] && [ "$ORB_VAL_VERIFY_REV_DEPLOY" == "0" ]; then echo "enable-circuit-breaker is set to true, but verify-revision-deploy is set to false. verfiy-revision-deploy must be set to true to use enable-circuit-breaker." exit 1 fi -if [ -n "$ECS_PARAM_CD_CAPACITY_PROVIDER_NAME" ]; then - if [ -z "$ECS_PARAM_CD_CAPACITY_PROVIDER_WEIGHT" ] || [ -z "$ECS_PARAM_CD_CAPACITY_PROVIDER_BASE" ]; then +if [ -n "$ORB_EVAL_CD_CAPACITY_PROVIDER_NAME" ]; then + if [ -z "$ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT" ] || [ -z "$ORB_EVAL_CD_CAPACITY_PROVIDER_BASE" ]; then echo "Capacity Provider base and weight parameter must all be provided. Please try again" exit 1 else - REVISION="{\"revisionType\": \"AppSpecContent\", \"appSpecContent\": {\"content\": \"{\\\"version\\\": 1, \\\"Resources\\\": [{\\\"TargetService\\\": {\\\"Type\\\": \\\"AWS::ECS::Service\\\", \\\"Properties\\\": {\\\"TaskDefinition\\\": \\\"${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}\\\", \\\"LoadBalancerInfo\\\": {\\\"ContainerName\\\": \\\"$ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_NAME\\\", \\\"ContainerPort\\\": $ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_PORT},\\\"CapacityProviderStrategy\\\":[{\\\"CapacityProvider\\\":\\\"$ECS_PARAM_CD_CAPACITY_PROVIDER_NAME\\\", \\\"Base\\\":${ECS_PARAM_CD_CAPACITY_PROVIDER_BASE}, \\\"Weight\\\":${ECS_PARAM_CD_CAPACITY_PROVIDER_WEIGHT}}]}}}]}\"}}" + REVISION="{\"revisionType\": \"AppSpecContent\", \"appSpecContent\": {\"content\": \"{\\\"version\\\": 1, \\\"Resources\\\": [{\\\"TargetService\\\": {\\\"Type\\\": \\\"AWS::ECS::Service\\\", \\\"Properties\\\": {\\\"TaskDefinition\\\": \\\"${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}\\\", \\\"LoadBalancerInfo\\\": {\\\"ContainerName\\\": \\\"$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME\\\", \\\"ContainerPort\\\": $ORB_VAL_CD_LOAD_BALANCED_CONTAINER_PORT},\\\"CapacityProviderStrategy\\\":[{\\\"CapacityProvider\\\":\\\"$ORB_EVAL_CD_CAPACITY_PROVIDER_NAME\\\", \\\"Base\\\":${ORB_EVAL_CD_CAPACITY_PROVIDER_BASE}, \\\"Weight\\\":${ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT}}]}}}]}\"}}" fi else - REVISION="{\"revisionType\": \"AppSpecContent\", \"appSpecContent\": {\"content\": \"{\\\"version\\\": 1, \\\"Resources\\\": [{\\\"TargetService\\\": {\\\"Type\\\": \\\"AWS::ECS::Service\\\", \\\"Properties\\\": {\\\"TaskDefinition\\\": \\\"${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}\\\", \\\"LoadBalancerInfo\\\": {\\\"ContainerName\\\": \\\"$ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_NAME\\\", \\\"ContainerPort\\\": $ECS_PARAM_CD_LOAD_BALANCED_CONTAINER_PORT}}}}]}\"}}" + REVISION="{\"revisionType\": \"AppSpecContent\", \"appSpecContent\": {\"content\": \"{\\\"version\\\": 1, \\\"Resources\\\": [{\\\"TargetService\\\": {\\\"Type\\\": \\\"AWS::ECS::Service\\\", \\\"Properties\\\": {\\\"TaskDefinition\\\": \\\"${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}\\\", \\\"LoadBalancerInfo\\\": {\\\"ContainerName\\\": \\\"$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME\\\", \\\"ContainerPort\\\": $ORB_VAL_CD_LOAD_BALANCED_CONTAINER_PORT}}}}]}\"}}" fi -if [ -n "$ECS_PARAM_CD_DEPLOYMENT_CONFIG_NAME" ]; then - set -- "$@" --deployment-config-name "${ECS_PARAM_CD_DEPLOYMENT_CONFIG_NAME}" +if [ -n "$ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME" ]; then + set -- "$@" --deployment-config-name "${ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME}" fi DEPLOYMENT_ID=$(aws deploy create-deployment \ - --application-name "$ECS_PARAM_CD_APP_NAME" \ - --deployment-group-name "$ECS_PARAM_CD_DEPLOY_GROUP_NAME" \ + --application-name "$ORB_EVAL_CD_APP_NAME" \ + --deployment-group-name "$ORB_EVAL_CD_DEPLOY_GROUP_NAME" \ --query deploymentId \ --revision "${REVISION}" \ "$@" \ @@ -38,11 +40,11 @@ DEPLOYMENT_ID=$(aws deploy create-deployment \ echo "Created CodeDeploy deployment: $DEPLOYMENT_ID" -if [ "$ECS_PARAM_VERIFY_REV_DEPLOY" == "1" ]; then +if [ "$ORB_VAL_VERIFY_REV_DEPLOY" == "1" ]; then echo "Waiting for deployment to succeed." if aws deploy wait deployment-successful --deployment-id "${DEPLOYMENT_ID}"; then echo "Deployment succeeded." - elif [ "$ECS_PARAM_ENABLE_CIRCUIT_BREAKER" == "1" ]; then + elif [ "$ORB_VAL_ENABLE_CIRCUIT_BREAKER" == "1" ]; then echo "Deployment failed. Rolling back." aws deploy stop-deployment --deployment-id "${DEPLOYMENT_ID}" --auto-rollback-enabled else diff --git a/src/scripts/update_service_via_task_def.sh b/src/scripts/update_service_via_task_def.sh index df5cd652..45cbde80 100644 --- a/src/scripts/update_service_via_task_def.sh +++ b/src/scripts/update_service_via_task_def.sh @@ -1,30 +1,27 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ECS_PARAM_FAMILY=$(eval echo "$ECS_PARAM_FAMILY") -ECS_PARAM_CLUSTER_NAME=$(eval echo "$ECS_PARAM_CLUSTER_NAME") -ECS_PARAM_SERVICE_NAME=$(eval echo "$ECS_PARAM_SERVICE_NAME") -ECS_PARAM_PROFILE_NAME=$(eval echo "$ECS_PARAM_PROFILE_NAME") +ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") +ORB_EVAL_CLUSTER_NAME=$(eval echo "$ORB_EVAL_CLUSTER_NAME") +ORB_EVAL_SERVICE_NAME=$(eval echo "$ORB_EVAL_SERVICE_NAME") +ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") -if [ -z "${ECS_PARAM_SERVICE_NAME}" ]; then - ECS_PARAM_SERVICE_NAME="$ECS_PARAM_FAMILY" +if [ -z "${ORB_EVAL_SERVICE_NAME}" ]; then + ORB_EVAL_SERVICE_NAME="$ORB_EVAL_FAMILY" fi -if [ "$ECS_PARAM_FORCE_NEW_DEPLOY" == "1" ]; then +if [ "$ORB_VAL_FORCE_NEW_DEPLOY" == "1" ]; then set -- "$@" --force-new-deployment fi -if [ -n "${ECS_PARAM_PROFILE_NAME}" ]; then - set -- "$@" --profile "${ECS_PARAM_PROFILE_NAME}" -fi - -if [ "$ECS_PARAM_ENABLE_CIRCUIT_BREAKER" == "1" ]; then +if [ "$ORB_VAL_ENABLE_CIRCUIT_BREAKER" == "1" ]; then set -- "$@" --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" fi DEPLOYED_REVISION=$(aws ecs update-service \ - --cluster "$ECS_PARAM_CLUSTER_NAME" \ - --service "${ECS_PARAM_SERVICE_NAME}" \ + --profile "${ORB_EVAL_PROFILE_NAME}" \ + --cluster "$ORB_EVAL_CLUSTER_NAME" \ + --service "${ORB_EVAL_SERVICE_NAME}" \ --task-definition "${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}" \ --output text \ --query service.taskDefinition \ diff --git a/src/scripts/update_task_definition_from_json.sh b/src/scripts/update_task_definition_from_json.sh index 6a874895..b37b7ec0 100644 --- a/src/scripts/update_task_definition_from_json.sh +++ b/src/scripts/update_task_definition_from_json.sh @@ -1,14 +1,13 @@ -ECS_PARAM_PROFILE_NAME=$(eval echo "$ECS_PARAM_PROFILE_NAME") +ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_TASK_DEFINITION_JSON=$(eval echo "$ORB_EVAL_TASK_DEFINITION_JSON") -if [ "${ECS_PARAM_TASK_DEFINITION_JSON:0:1}" != "/" ]; then - ECS_PARAM_TASK_DEFINITION_JSON="$(pwd)/${ECS_PARAM_TASK_DEFINITION_JSON}" +if [ "${ORB_EVAL_TASK_DEFINITION_JSON:0:1}" != "/" ]; then + ORB_EVAL_TASK_DEFINITION_JSON="$(pwd)/${ORB_EVAL_TASK_DEFINITION_JSON}" fi -if [ -n "${ECS_PARAM_PROFILE_NAME}" ]; then - set -- "$@" --profile "${ECS_PARAM_PROFILE_NAME}" -fi REVISION=$(aws ecs register-task-definition \ - --cli-input-json file://"${ECS_PARAM_TASK_DEFINITION_JSON}" \ + --profile "${ORB_EVAL_PROFILE_NAME}" \ + --cli-input-json file://"${ORB_EVAL_TASK_DEFINITION_JSON}" \ --output text \ --query 'taskDefinition.taskDefinitionArn' \ "$@") diff --git a/src/scripts/verify_revision_is_deployed.sh b/src/scripts/verify_revision_is_deployed.sh index 9061fdb7..17b3dcb5 100644 --- a/src/scripts/verify_revision_is_deployed.sh +++ b/src/scripts/verify_revision_is_deployed.sh @@ -1,63 +1,62 @@ # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ECS_PARAM_FAMILY=$(eval echo "$ECS_PARAM_FAMILY") -ECS_PARAM_SERVICE_NAME=$(eval echo "$ECS_PARAM_SERVICE_NAME") -ECS_PARAM_CLUSTER_NAME=$(eval echo "$ECS_PARAM_CLUSTER_NAME") -ECS_PARAM_TASK_DEF_ARN=$(eval echo "$ECS_PARAM_TASK_DEF_ARN") -ECS_PARAM_PROFILE_NAME=$(eval echo "$ECS_PARAM_PROFILE_NAME") - -if [ "$ECS_PARAM_TASK_DEF_ARN" = "" ]; then - echo "Invalid task-definition-arn parameter value: $ECS_PARAM_TASK_DEF_ARN" +ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") +ORB_EVAL_SERVICE_NAME=$(eval echo "$ORB_EVAL_SERVICE_NAME") +ORB_EVAL_CLUSTER_NAME=$(eval echo "$ORB_EVAL_CLUSTER_NAME") +ORB_EVAL_TASK_DEF_ARN=$(eval echo "$ORB_EVAL_TASK_DEF_ARN") +ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") + +if [ "$ORB_EVAL_TASK_DEF_ARN" = "" ]; then + echo "Invalid task-definition-arn parameter value: $ORB_EVAL_TASK_DEF_ARN" exit 1 fi -if [ -z "${ECS_PARAM_SERVICE_NAME}" ]; then - ECS_PARAM_SERVICE_NAME="$ECS_PARAM_FAMILY" +if [ -z "${ORB_EVAL_SERVICE_NAME}" ]; then + ORB_EVAL_SERVICE_NAME="$ORB_EVAL_FAMILY" fi -echo "Verifying that $ECS_PARAM_TASK_DEF_ARN is deployed.." +echo "Verifying that $ORB_EVAL_TASK_DEF_ARN is deployed.." attempt=0 -while [ "$attempt" -lt "$ECS_PARAM_MAX_POLL_ATTEMPTS" ] - -do - if [ -n "${ECS_PARAM_PROFILE_NAME}" ]; then - set -- "$@" --profile="${ECS_PARAM_PROFILE_NAME}" - fi +while [ "$attempt" -lt "$ORB_VAL_MAX_POLL_ATTEMPTS" ] +do DEPLOYMENTS=$(aws ecs describe-services \ - --cluster "$ECS_PARAM_CLUSTER_NAME" \ - --services "${ECS_PARAM_SERVICE_NAME}" \ + --profile "${ORB_EVAL_PROFILE_NAME}" \ + --cluster "$ORB_EVAL_CLUSTER_NAME" \ + --services "${ORB_EVAL_SERVICE_NAME}" \ --output text \ --query 'services[0].deployments[].[taskDefinition, status]' \ "$@") NUM_DEPLOYMENTS=$(aws ecs describe-services \ - --cluster "$ECS_PARAM_CLUSTER_NAME" \ - --services "${ECS_PARAM_SERVICE_NAME}" \ + --profile "${ORB_EVAL_PROFILE_NAME}" \ + --cluster "$ORB_EVAL_CLUSTER_NAME" \ + --services "${ORB_EVAL_SERVICE_NAME}" \ --output text \ --query 'length(services[0].deployments)' \ "$@") TARGET_REVISION=$(aws ecs describe-services \ - --cluster "$ECS_PARAM_CLUSTER_NAME" \ - --services "${ECS_PARAM_SERVICE_NAME}" \ + --profile "${ORB_EVAL_PROFILE_NAME}" \ + --cluster "$ORB_EVAL_CLUSTER_NAME" \ + --services "${ORB_EVAL_SERVICE_NAME}" \ --output text \ - --query "services[0].deployments[?taskDefinition==\`$ECS_PARAM_TASK_DEF_ARN\` && runningCount == desiredCount && (status == \`PRIMARY\` || status == \`ACTIVE\`)][taskDefinition]" \ + --query "services[0].deployments[?taskDefinition==\`$ORB_EVAL_TASK_DEF_ARN\` && runningCount == desiredCount && (status == \`PRIMARY\` || status == \`ACTIVE\`)][taskDefinition]" \ "$@") echo "Current deployments: $DEPLOYMENTS" - if [ "$NUM_DEPLOYMENTS" = "1" ] && [ "$TARGET_REVISION" = "$ECS_PARAM_TASK_DEF_ARN" ]; then + if [ "$NUM_DEPLOYMENTS" = "1" ] && [ "$TARGET_REVISION" = "$ORB_EVAL_TASK_DEF_ARN" ]; then echo "The task definition revision $TARGET_REVISION is the only deployment for the service and has attained the desired running task count." exit 0 else - echo "Waiting for revision $ECS_PARAM_TASK_DEF_ARN to reach desired running count / older revisions to be stopped.." - sleep "$ECS_PARAM_POLL_INTERVAL" + echo "Waiting for revision $ORB_EVAL_TASK_DEF_ARN to reach desired running count / older revisions to be stopped.." + sleep "$ORB_VAL_POLL_INTERVAL" fi attempt=$((attempt + 1)) done -echo "Stopped waiting for deployment to be stable - please check the status of $ECS_PARAM_TASK_DEF_ARN on the AWS ECS console." +echo "Stopped waiting for deployment to be stable - please check the status of $ORB_EVAL_TASK_DEF_ARN on the AWS ECS console." -if [ "$ECS_PARAM_FAIL_ON_VERIFY_TIMEOUT" = "1" ]; then +if [ "$ORB_VAL_FAIL_ON_VERIFY_TIMEOUT" = "1" ]; then exit 1 fi From dab384d352d45627cb774456c1b7d4b3bbb57c39 Mon Sep 17 00:00:00 2001 From: Brian Vu Date: Wed, 31 May 2023 22:13:37 -0700 Subject: [PATCH 02/16] refactor: implement circleci env subst --- src/scripts/get_prev_task.sh | 14 ++++---- src/scripts/register_new_task_def.sh | 4 +-- src/scripts/run_task.sh | 34 ++++++++----------- .../update_bluegreen_service_via_task_def.sh | 12 +++---- src/scripts/update_service_via_task_def.sh | 8 ++--- .../update_task_definition_from_json.sh | 4 +-- src/scripts/verify_revision_is_deployed.sh | 10 +++--- 7 files changed, 41 insertions(+), 45 deletions(-) diff --git a/src/scripts/get_prev_task.sh b/src/scripts/get_prev_task.sh index 2fbd7866..48eaae6a 100644 --- a/src/scripts/get_prev_task.sh +++ b/src/scripts/get_prev_task.sh @@ -1,13 +1,13 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") -ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES=$(eval echo "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES") -ORB_EVAL_CONTAINER_ENV_VAR_UPDATE=$(eval echo "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE") -ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") -ORB_EVAL_CONTAINER_SECRET_UPDATES=$(eval echo "$ORB_EVAL_CONTAINER_SECRET_UPDATES") -ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES=$(eval echo "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES") -ORB_EVAL_PREVIOUS_REVISION_NUMBER=$(eval echo "$ORB_EVAL_PREVIOUS_REVISION_NUMBER") +ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") +ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES=$(circleci env subst "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES") +ORB_EVAL_CONTAINER_ENV_VAR_UPDATE=$(circleci env subst "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE") +ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_CONTAINER_SECRET_UPDATES=$(circleci env subst "$ORB_EVAL_CONTAINER_SECRET_UPDATES") +ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES=$(circleci env subst "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES") +ORB_EVAL_PREVIOUS_REVISION_NUMBER=$(circleci env subst "$ORB_EVAL_PREVIOUS_REVISION_NUMBER") if [ -z "${ECS_PARAM_PREVIOUS_REVISION}" ]; then ECS_TASK_DEFINITION_NAME="$ORB_EVAL_FAMILY" diff --git a/src/scripts/register_new_task_def.sh b/src/scripts/register_new_task_def.sh index 91c6259d..490e5d94 100644 --- a/src/scripts/register_new_task_def.sh +++ b/src/scripts/register_new_task_def.sh @@ -1,8 +1,8 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") -ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") +ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") if [ -n "${CCI_ORB_AWS_ECS_TASK_ROLE}" ]; then set -- "$@" --task-role-arn "${CCI_ORB_AWS_ECS_TASK_ROLE}" diff --git a/src/scripts/run_task.sh b/src/scripts/run_task.sh index c24316a6..13ae7a52 100644 --- a/src/scripts/run_task.sh +++ b/src/scripts/run_task.sh @@ -1,23 +1,19 @@ if [[ $EUID == 0 ]]; then export SUDO=""; else export SUDO="sudo"; fi # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_CLUSTER_NAME=$(eval echo "$ORB_EVAL_CLUSTER_NAME") -ORB_EVAL_TASK_DEF=$(eval echo "$ORB_EVAL_TASK_DEF") -ORB_EVAL_STARTED_BY=$(eval echo "$ORB_EVAL_STARTED_BY") -ORB_EVAL_GROUP=$(eval echo "$ORB_EVAL_GROUP") -ORB_EVAL_PLACEMENT_STRATEGY=$(eval echo "$ORB_EVAL_PLACEMENT_STRATEGY") -ORB_EVAL_PLACEMENT_CONSTRAINTS=$(eval echo "$ORB_EVAL_PLACEMENT_CONSTRAINTS") -ORB_EVAL_PLATFORM_VERSION=$(eval echo "$ORB_EVAL_PLATFORM_VERSION") -ORB_EVAL_TAGS=$(eval echo "$ORB_EVAL_TAGS") -ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY=$(eval echo "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY") -ORB_EVAL_RUN_TASK_OUTPUT=$(eval echo "$ORB_EVAL_RUN_TASK_OUTPUT") -ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_CLUSTER_NAME=$(circleci env subst "$ORB_EVAL_CLUSTER_NAME") +ORB_EVAL_TASK_DEF=$(circleci env subst "$ORB_EVAL_TASK_DEF") +ORB_EVAL_STARTED_BY=$(circleci env subst "$ORB_EVAL_STARTED_BY") +ORB_EVAL_GROUP=$(circleci env subst "$ORB_EVAL_GROUP") +ORB_EVAL_PLACEMENT_STRATEGY=$(circleci env subst "$ORB_EVAL_PLACEMENT_STRATEGY") +ORB_EVAL_PLACEMENT_CONSTRAINTS=$(circleci env subst "$ORB_EVAL_PLACEMENT_CONSTRAINTS") +ORB_EVAL_PLATFORM_VERSION=$(circleci env subst "$ORB_EVAL_PLATFORM_VERSION") +ORB_EVAL_TAGS=$(circleci env subst "$ORB_EVAL_TAGS") +ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY=$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY") +ORB_EVAL_RUN_TASK_OUTPUT=$(circleci env subst "$ORB_EVAL_RUN_TASK_OUTPUT") +ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") -if ! command -v envsubst && [[ "$ORB_EVAL_OVERRIDES" == *"\${"* ]]; then - echo "Installing envsubst." - curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-"$(uname -s)"-"$(uname -m)" -o envsubst - $SUDO chmod +x envsubst - $SUDO mv envsubst /usr/local/bin - ORB_EVAL_OVERRIDES=$(echo "${ORB_EVAL_OVERRIDES}" | envsubst) +if [[ "$ORB_EVAL_OVERRIDES" == *"\${"* ]]; then + ORB_EVAL_OVERRIDES=$(echo "${ORB_EVAL_OVERRIDES}" | circleci env subst) fi set -o noglob @@ -64,8 +60,8 @@ if [ "$ORB_VAL_AWSVPC" == "1" ]; then echo 'When "awsvpc" is enabled, "subnet-ids" must be provided.' exit 1 fi - ORB_EVAL_SUBNET_ID=$(eval echo "$ORB_EVAL_SUBNET_ID") - ORB_EVAL_SEC_GROUP_ID=$(eval echo "$ORB_EVAL_SEC_GROUP_ID") + ORB_EVAL_SUBNET_ID=$(circleci env subst "$ORB_EVAL_SUBNET_ID") + ORB_EVAL_SEC_GROUP_ID=$(circleci env subst "$ORB_EVAL_SEC_GROUP_ID") set -- "$@" --network-configuration awsvpcConfiguration="{subnets=[$ORB_EVAL_SUBNET_ID],securityGroups=[$ORB_EVAL_SEC_GROUP_ID],assignPublicIp=$ORB_VAL_ASSIGN_PUB_IP}" fi if [ -n "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY" ]; then diff --git a/src/scripts/update_bluegreen_service_via_task_def.sh b/src/scripts/update_bluegreen_service_via_task_def.sh index 70281401..9b2ad93b 100644 --- a/src/scripts/update_bluegreen_service_via_task_def.sh +++ b/src/scripts/update_bluegreen_service_via_task_def.sh @@ -1,12 +1,12 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_CD_APP_NAME=$(eval echo "$ORB_EVAL_CD_APP_NAME") -ORB_EVAL_CD_DEPLOY_GROUP_NAME=$(eval echo "$ORB_EVAL_CD_DEPLOY_GROUP_NAME") -ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME=$(eval echo "$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME") -ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT=$(eval echo "$ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT") -ORB_EVAL_CD_CAPACITY_PROVIDER_BASE=$(eval echo "$ORB_EVAL_CD_CAPACITY_PROVIDER_BASE") -ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME=$(eval echo "$ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME") +ORB_EVAL_CD_APP_NAME=$(circleci env subst "$ORB_EVAL_CD_APP_NAME") +ORB_EVAL_CD_DEPLOY_GROUP_NAME=$(circleci env subst "$ORB_EVAL_CD_DEPLOY_GROUP_NAME") +ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME=$(circleci env subst "$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME") +ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT=$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT") +ORB_EVAL_CD_CAPACITY_PROVIDER_BASE=$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_BASE") +ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME=$(circleci env subst "$ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME") DEPLOYED_REVISION="${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}" diff --git a/src/scripts/update_service_via_task_def.sh b/src/scripts/update_service_via_task_def.sh index 45cbde80..170e3a29 100644 --- a/src/scripts/update_service_via_task_def.sh +++ b/src/scripts/update_service_via_task_def.sh @@ -1,10 +1,10 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") -ORB_EVAL_CLUSTER_NAME=$(eval echo "$ORB_EVAL_CLUSTER_NAME") -ORB_EVAL_SERVICE_NAME=$(eval echo "$ORB_EVAL_SERVICE_NAME") -ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") +ORB_EVAL_CLUSTER_NAME=$(circleci env subst "$ORB_EVAL_CLUSTER_NAME") +ORB_EVAL_SERVICE_NAME=$(circleci env subst "$ORB_EVAL_SERVICE_NAME") +ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") if [ -z "${ORB_EVAL_SERVICE_NAME}" ]; then ORB_EVAL_SERVICE_NAME="$ORB_EVAL_FAMILY" diff --git a/src/scripts/update_task_definition_from_json.sh b/src/scripts/update_task_definition_from_json.sh index b37b7ec0..14258b23 100644 --- a/src/scripts/update_task_definition_from_json.sh +++ b/src/scripts/update_task_definition_from_json.sh @@ -1,5 +1,5 @@ -ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") -ORB_EVAL_TASK_DEFINITION_JSON=$(eval echo "$ORB_EVAL_TASK_DEFINITION_JSON") +ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_TASK_DEFINITION_JSON=$(circleci env subst "$ORB_EVAL_TASK_DEFINITION_JSON") if [ "${ORB_EVAL_TASK_DEFINITION_JSON:0:1}" != "/" ]; then ORB_EVAL_TASK_DEFINITION_JSON="$(pwd)/${ORB_EVAL_TASK_DEFINITION_JSON}" diff --git a/src/scripts/verify_revision_is_deployed.sh b/src/scripts/verify_revision_is_deployed.sh index 17b3dcb5..1ebd08e2 100644 --- a/src/scripts/verify_revision_is_deployed.sh +++ b/src/scripts/verify_revision_is_deployed.sh @@ -1,9 +1,9 @@ # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(eval echo "$ORB_EVAL_FAMILY") -ORB_EVAL_SERVICE_NAME=$(eval echo "$ORB_EVAL_SERVICE_NAME") -ORB_EVAL_CLUSTER_NAME=$(eval echo "$ORB_EVAL_CLUSTER_NAME") -ORB_EVAL_TASK_DEF_ARN=$(eval echo "$ORB_EVAL_TASK_DEF_ARN") -ORB_EVAL_PROFILE_NAME=$(eval echo "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") +ORB_EVAL_SERVICE_NAME=$(circleci env subst "$ORB_EVAL_SERVICE_NAME") +ORB_EVAL_CLUSTER_NAME=$(circleci env subst "$ORB_EVAL_CLUSTER_NAME") +ORB_EVAL_TASK_DEF_ARN=$(circleci env subst "$ORB_EVAL_TASK_DEF_ARN") +ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") if [ "$ORB_EVAL_TASK_DEF_ARN" = "" ]; then echo "Invalid task-definition-arn parameter value: $ORB_EVAL_TASK_DEF_ARN" From 2c30643a1b12cf410bdbdb126a88b2778a5a621b Mon Sep 17 00:00:00 2001 From: Brian Vu Date: Thu, 1 Jun 2023 10:46:58 -0700 Subject: [PATCH 03/16] chore: update parameter name --- .circleci/test-deploy.yml | 4 ++-- src/examples/deploy_ecs_scheduled_task.yml | 2 +- src/examples/update_service.yml | 2 +- src/examples/update_task_definition_from_json.yml | 2 +- src/examples/verify_revision_deplopyment.yml | 2 +- src/jobs/deploy_service_update.yml | 2 +- src/jobs/run_task.yml | 2 +- src/jobs/update_task_definition.yml | 2 +- src/jobs/update_task_definition_from_json.yml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.circleci/test-deploy.yml b/.circleci/test-deploy.yml index 3f003226..17e02369 100644 --- a/.circleci/test-deploy.yml +++ b/.circleci/test-deploy.yml @@ -676,7 +676,7 @@ workflows: filters: *filters requires: - codedeploy_fargate_test-update_service-command - aws_region: AWS_REGION + region: AWS_REGION family: "${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}-service" cluster: "${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}-cluster" container_image_name_updates: "container=${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}-service,image-and-tag=${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}:${CIRCLE_SHA1}" @@ -709,7 +709,7 @@ workflows: filters: *filters requires: - codedeploy_fargate_test-update_service-job - aws_region: AWS_REGION + region: AWS_REGION family: "${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}-service" cluster: "${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}-cluster" container_image_name_updates: "container=${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}-service,image-and-tag=${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/${AWS_RESOURCE_NAME_PREFIX_CODEDEPLOY_FARGATE}:${CIRCLE_SHA1}" diff --git a/src/examples/deploy_ecs_scheduled_task.yml b/src/examples/deploy_ecs_scheduled_task.yml index 270f69ea..b5d715df 100644 --- a/src/examples/deploy_ecs_scheduled_task.yml +++ b/src/examples/deploy_ecs_scheduled_task.yml @@ -14,7 +14,7 @@ usage: - aws-cli/setup: # This example uses CircleCI's OpenID Connect Token to generate temporary AWS keys role-arn: "arn:aws:iam::123456789012:role/OIDC_ARN" - aws_region: AWS_REGION + region: AWS_REGION profile_name: "OIDC-PROFILE" session-duration: 3600 role-session-name: "example-session-name" diff --git a/src/examples/update_service.yml b/src/examples/update_service.yml index 9f1e31c7..e6ac6f4f 100644 --- a/src/examples/update_service.yml +++ b/src/examples/update_service.yml @@ -14,7 +14,7 @@ usage: - aws-cli/setup: # This example uses CircleCI's OpenID Connect Token to generate temporary AWS keys role-arn: "arn:aws:iam::123456789012:role/OIDC_ARN" - aws_region: AWS_REGION + region: AWS_REGION profile_name: "OIDC-PROFILE" session-duration: 3600 role-session-name: "example-session-name" diff --git a/src/examples/update_task_definition_from_json.yml b/src/examples/update_task_definition_from_json.yml index 3416fd30..1354e6fe 100644 --- a/src/examples/update_task_definition_from_json.yml +++ b/src/examples/update_task_definition_from_json.yml @@ -12,7 +12,7 @@ usage: - aws-cli/setup: # This example uses CircleCI's OpenID Connect Token to generate temporary AWS keys role-arn: "arn:aws:iam::123456789012:role/OIDC_ARN" - aws_region: AWS_REGION + region: AWS_REGION profile_name: "OIDC-PROFILE" session-duration: 3600 role-session-name: "example-session-name" diff --git a/src/examples/verify_revision_deplopyment.yml b/src/examples/verify_revision_deplopyment.yml index bce76213..195b6201 100644 --- a/src/examples/verify_revision_deplopyment.yml +++ b/src/examples/verify_revision_deplopyment.yml @@ -12,7 +12,7 @@ usage: - aws-cli/setup: # This example uses CircleCI's OpenID Connect Token to generate temporary AWS keys role-arn: "arn:aws:iam::123456789012:role/OIDC_ARN" - aws_region: AWS_REGION + region: AWS_REGION profile_name: "OIDC-PROFILE" session-duration: 3600 role-session-name: "example-session-name" diff --git a/src/jobs/deploy_service_update.yml b/src/jobs/deploy_service_update.yml index 89980ef2..6f9dd317 100644 --- a/src/jobs/deploy_service_update.yml +++ b/src/jobs/deploy_service_update.yml @@ -8,7 +8,7 @@ parameters: description: The docker image to be used for running this job on CircleCI. type: string default: 'cimg/python:3.10.4' - aws_region: + region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. type: string default: ${AWS_DEFAULT_REGION} diff --git a/src/jobs/run_task.yml b/src/jobs/run_task.yml index 738f18d1..d521c049 100755 --- a/src/jobs/run_task.yml +++ b/src/jobs/run_task.yml @@ -8,7 +8,7 @@ parameters: description: The docker image to be used for running this job on CircleCI. type: string default: 'cimg/python:3.10.4' - aws_region: + region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. type: string default: ${AWS_DEFAULT_REGION} diff --git a/src/jobs/update_task_definition.yml b/src/jobs/update_task_definition.yml index b02c4bc7..847c8f17 100644 --- a/src/jobs/update_task_definition.yml +++ b/src/jobs/update_task_definition.yml @@ -8,7 +8,7 @@ parameters: description: The docker image to be used for running this job on CircleCI. type: string default: 'cimg/python:3.10.4' - aws_region: + region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. type: string default: ${AWS_DEFAULT_REGION} diff --git a/src/jobs/update_task_definition_from_json.yml b/src/jobs/update_task_definition_from_json.yml index d3a7c51d..02dabbe3 100644 --- a/src/jobs/update_task_definition_from_json.yml +++ b/src/jobs/update_task_definition_from_json.yml @@ -7,7 +7,7 @@ parameters: description: The docker image to be used for running this job on CircleCI. type: string default: 'cimg/python:3.10.4' - aws_region: + region: description: AWS region to operate in. Set this to the name of the environment variable you will use to hold this value, i.e. AWS_DEFAULT_REGION. type: string default: ${AWS_DEFAULT_REGION} From 2e179c2c8aed786a8a97da2ca04c7acb7cad9e56 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:01:28 -0700 Subject: [PATCH 04/16] chore: update src/scripts/deploy_ecs_scheduled_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/deploy_ecs_scheduled_task.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/deploy_ecs_scheduled_task.sh b/src/scripts/deploy_ecs_scheduled_task.sh index 0e0249b8..ac0af65b 100644 --- a/src/scripts/deploy_ecs_scheduled_task.sh +++ b/src/scripts/deploy_ecs_scheduled_task.sh @@ -5,7 +5,7 @@ if [ -z "$td_arn" ]; then exit 1 fi -ORB_EVAL_RULE_NAME=$(circleci env subst "${ORB_EVAL_RULE_NAME}") +ORB_EVAL_RULE_NAME="$(circleci env subst "${ORB_EVAL_RULE_NAME}")" CLI_OUTPUT_FILE=$(mktemp cli-output.json.XXXX) CLI_INPUT_FILE=$(mktemp cli-input.json.XXXX) From 9b8b8d52ad99e08be5625de61b2815690127edc1 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:01:47 -0700 Subject: [PATCH 05/16] chore: update src/scripts/deploy_ecs_scheduled_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/deploy_ecs_scheduled_task.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/deploy_ecs_scheduled_task.sh b/src/scripts/deploy_ecs_scheduled_task.sh index ac0af65b..9a4bc20b 100644 --- a/src/scripts/deploy_ecs_scheduled_task.sh +++ b/src/scripts/deploy_ecs_scheduled_task.sh @@ -18,4 +18,4 @@ if < "$CLI_OUTPUT_FILE" jq ' .Targets[] | has("EcsParameters")' | grep "false"; fi < "$CLI_OUTPUT_FILE" jq --arg td_arn "$td_arn" '.Targets[].EcsParameters.TaskDefinitionArn |= $td_arn' > "$CLI_INPUT_FILE" -aws events put-targets --rule $ORB_EVAL_RULE_NAME --cli-input-json "$(cat "$CLI_INPUT_FILE")" +aws events put-targets --rule "$ORB_EVAL_RULE_NAME" --cli-input-json "$(cat "$CLI_INPUT_FILE")" From b452bfd851e302b3566c7725c0d39294c15fa566 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:02:09 -0700 Subject: [PATCH 06/16] chore: update src/scripts/get_prev_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/get_prev_task.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/scripts/get_prev_task.sh b/src/scripts/get_prev_task.sh index 48eaae6a..4c54b244 100644 --- a/src/scripts/get_prev_task.sh +++ b/src/scripts/get_prev_task.sh @@ -1,13 +1,13 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") -ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES=$(circleci env subst "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES") -ORB_EVAL_CONTAINER_ENV_VAR_UPDATE=$(circleci env subst "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE") -ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") -ORB_EVAL_CONTAINER_SECRET_UPDATES=$(circleci env subst "$ORB_EVAL_CONTAINER_SECRET_UPDATES") -ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES=$(circleci env subst "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES") -ORB_EVAL_PREVIOUS_REVISION_NUMBER=$(circleci env subst "$ORB_EVAL_PREVIOUS_REVISION_NUMBER") +ORB_EVAL_FAMILY="$(circleci env subst "$ORB_EVAL_FAMILY")" +ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES="$(circleci env subst "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES")" +ORB_EVAL_CONTAINER_ENV_VAR_UPDATE="$(circleci env subst "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE")" +ORB_EVAL_PROFILE_NAME="$(circleci env subst "$ORB_EVAL_PROFILE_NAME")" +ORB_EVAL_CONTAINER_SECRET_UPDATES="$(circleci env subst "$ORB_EVAL_CONTAINER_SECRET_UPDATES")" +ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES="$(circleci env subst "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES")" +ORB_EVAL_PREVIOUS_REVISION_NUMBER="$(circleci env subst "$ORB_EVAL_PREVIOUS_REVISION_NUMBER")" if [ -z "${ECS_PARAM_PREVIOUS_REVISION}" ]; then ECS_TASK_DEFINITION_NAME="$ORB_EVAL_FAMILY" From 3243b8e7e3c9d0452c12058a6f6f848d3d938832 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:02:21 -0700 Subject: [PATCH 07/16] chore: update src/scripts/get_prev_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/get_prev_task.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/get_prev_task.sh b/src/scripts/get_prev_task.sh index 4c54b244..c237139a 100644 --- a/src/scripts/get_prev_task.sh +++ b/src/scripts/get_prev_task.sh @@ -16,7 +16,7 @@ else fi # shellcheck disable=SC2034 -PREVIOUS_TASK_DEFINITION=$(aws ecs describe-task-definition --task-definition "${ECS_TASK_DEFINITION_NAME}" --include TAGS --profile "${ORB_EVAL_PROFILE_NAME}" "$@") +PREVIOUS_TASK_DEFINITION="$(aws ecs describe-task-definition --task-definition "${ECS_TASK_DEFINITION_NAME}" --include TAGS --profile "${ORB_EVAL_PROFILE_NAME}" "$@")" # Prepare script for updating container definitions From 02d3f86c268872136de7597a3cd5e0e597877dc4 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:02:31 -0700 Subject: [PATCH 08/16] chore: update src/scripts/get_prev_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/get_prev_task.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/get_prev_task.sh b/src/scripts/get_prev_task.sh index c237139a..8c4ecc70 100644 --- a/src/scripts/get_prev_task.sh +++ b/src/scripts/get_prev_task.sh @@ -27,7 +27,7 @@ cat <<< "$ECS_SCRIPT_UPDATE_CONTAINER_DEFS" > "$UPDATE_CONTAINER_DEFS_SCRIPT_FIL # Prepare container definitions -CONTAINER_DEFS=$(python "$UPDATE_CONTAINER_DEFS_SCRIPT_FILE" "$PREVIOUS_TASK_DEFINITION" "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES" "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE" "$ORB_EVAL_CONTAINER_SECRET_UPDATES" "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES") +CONTAINER_DEFS="$(python "$UPDATE_CONTAINER_DEFS_SCRIPT_FILE" "$PREVIOUS_TASK_DEFINITION" "$ORB_EVAL_CONTAINER_IMAGE_NAME_UPDATES" "$ORB_EVAL_CONTAINER_ENV_VAR_UPDATE" "$ORB_EVAL_CONTAINER_SECRET_UPDATES" "$ORB_EVAL_CONTAINER_DOCKER_LABEL_UPDATES")" # Escape single quotes from environment variables for BASH_ENV From 8c2bbde4cbec34e7a00bdb8786a70fa45c470dd8 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:02:41 -0700 Subject: [PATCH 09/16] chore: update src/scripts/run_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/run_task.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/run_task.sh b/src/scripts/run_task.sh index 13ae7a52..69c7667c 100644 --- a/src/scripts/run_task.sh +++ b/src/scripts/run_task.sh @@ -13,7 +13,7 @@ ORB_EVAL_RUN_TASK_OUTPUT=$(circleci env subst "$ORB_EVAL_RUN_TASK_OUTPUT") ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") if [[ "$ORB_EVAL_OVERRIDES" == *"\${"* ]]; then - ORB_EVAL_OVERRIDES=$(echo "${ORB_EVAL_OVERRIDES}" | circleci env subst) + ORB_EVAL_OVERRIDES="$(echo "${ORB_EVAL_OVERRIDES}" | circleci env subst)" fi set -o noglob From 6f8ba8913124948566c765aaea69ea803e059e59 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:02:51 -0700 Subject: [PATCH 10/16] chore: update src/scripts/run_task.sh Co-authored-by: Eric Ribeiro --- src/scripts/run_task.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/run_task.sh b/src/scripts/run_task.sh index 69c7667c..09616452 100644 --- a/src/scripts/run_task.sh +++ b/src/scripts/run_task.sh @@ -60,8 +60,8 @@ if [ "$ORB_VAL_AWSVPC" == "1" ]; then echo 'When "awsvpc" is enabled, "subnet-ids" must be provided.' exit 1 fi - ORB_EVAL_SUBNET_ID=$(circleci env subst "$ORB_EVAL_SUBNET_ID") - ORB_EVAL_SEC_GROUP_ID=$(circleci env subst "$ORB_EVAL_SEC_GROUP_ID") + ORB_EVAL_SUBNET_ID="$(circleci env subst "$ORB_EVAL_SUBNET_ID")" + ORB_EVAL_SEC_GROUP_ID="$(circleci env subst "$ORB_EVAL_SEC_GROUP_ID")" set -- "$@" --network-configuration awsvpcConfiguration="{subnets=[$ORB_EVAL_SUBNET_ID],securityGroups=[$ORB_EVAL_SEC_GROUP_ID],assignPublicIp=$ORB_VAL_ASSIGN_PUB_IP}" fi if [ -n "$ORB_EVAL_CD_CAPACITY_PROVIDER_STRATEGY" ]; then From 2f6fba9610f91b63bf776d7594d4ff372fa465c3 Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:03:05 -0700 Subject: [PATCH 11/16] chore: update src/scripts/update_bluegreen_service_via_task_def.sh Co-authored-by: Eric Ribeiro --- src/scripts/update_bluegreen_service_via_task_def.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/scripts/update_bluegreen_service_via_task_def.sh b/src/scripts/update_bluegreen_service_via_task_def.sh index 9b2ad93b..39dded85 100644 --- a/src/scripts/update_bluegreen_service_via_task_def.sh +++ b/src/scripts/update_bluegreen_service_via_task_def.sh @@ -1,12 +1,12 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_CD_APP_NAME=$(circleci env subst "$ORB_EVAL_CD_APP_NAME") -ORB_EVAL_CD_DEPLOY_GROUP_NAME=$(circleci env subst "$ORB_EVAL_CD_DEPLOY_GROUP_NAME") -ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME=$(circleci env subst "$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME") -ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT=$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT") -ORB_EVAL_CD_CAPACITY_PROVIDER_BASE=$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_BASE") -ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME=$(circleci env subst "$ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME") +ORB_EVAL_CD_APP_NAME="$(circleci env subst "$ORB_EVAL_CD_APP_NAME")" +ORB_EVAL_CD_DEPLOY_GROUP_NAME="$(circleci env subst "$ORB_EVAL_CD_DEPLOY_GROUP_NAME")" +ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME="$(circleci env subst "$ORB_EVAL_CD_LOAD_BALANCED_CONTAINER_NAME")" +ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT="$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_WEIGHT")" +ORB_EVAL_CD_CAPACITY_PROVIDER_BASE="$(circleci env subst "$ORB_EVAL_CD_CAPACITY_PROVIDER_BASE")" +ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME="$(circleci env subst "$ORB_EVAL_CD_DEPLOYMENT_CONFIG_NAME")" DEPLOYED_REVISION="${CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN}" From 92e23283a4d25280fbf6db04c5e787037307777b Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:03:18 -0700 Subject: [PATCH 12/16] chore: update src/scripts/update_service_via_task_def.sh Co-authored-by: Eric Ribeiro --- src/scripts/update_service_via_task_def.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/scripts/update_service_via_task_def.sh b/src/scripts/update_service_via_task_def.sh index 170e3a29..9fd05975 100644 --- a/src/scripts/update_service_via_task_def.sh +++ b/src/scripts/update_service_via_task_def.sh @@ -1,10 +1,10 @@ set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") -ORB_EVAL_CLUSTER_NAME=$(circleci env subst "$ORB_EVAL_CLUSTER_NAME") -ORB_EVAL_SERVICE_NAME=$(circleci env subst "$ORB_EVAL_SERVICE_NAME") -ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_FAMILY="$(circleci env subst "$ORB_EVAL_FAMILY")" +ORB_EVAL_CLUSTER_NAME="$(circleci env subst "$ORB_EVAL_CLUSTER_NAME")" +ORB_EVAL_SERVICE_NAME="$(circleci env subst "$ORB_EVAL_SERVICE_NAME")" +ORB_EVAL_PROFILE_NAME="$(circleci env subst "$ORB_EVAL_PROFILE_NAME")" if [ -z "${ORB_EVAL_SERVICE_NAME}" ]; then ORB_EVAL_SERVICE_NAME="$ORB_EVAL_FAMILY" From 6d3bed128bf0fa3583c7dbfd7be87d0bf89e009f Mon Sep 17 00:00:00 2001 From: Brian Vu <64455338+brivu@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:03:28 -0700 Subject: [PATCH 13/16] chore: update src/scripts/verify_revision_is_deployed.sh Co-authored-by: Eric Ribeiro --- src/scripts/verify_revision_is_deployed.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/scripts/verify_revision_is_deployed.sh b/src/scripts/verify_revision_is_deployed.sh index 1ebd08e2..85486eee 100644 --- a/src/scripts/verify_revision_is_deployed.sh +++ b/src/scripts/verify_revision_is_deployed.sh @@ -1,9 +1,9 @@ # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. -ORB_EVAL_FAMILY=$(circleci env subst "$ORB_EVAL_FAMILY") -ORB_EVAL_SERVICE_NAME=$(circleci env subst "$ORB_EVAL_SERVICE_NAME") -ORB_EVAL_CLUSTER_NAME=$(circleci env subst "$ORB_EVAL_CLUSTER_NAME") -ORB_EVAL_TASK_DEF_ARN=$(circleci env subst "$ORB_EVAL_TASK_DEF_ARN") -ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") +ORB_EVAL_FAMILY="$(circleci env subst "$ORB_EVAL_FAMILY")" +ORB_EVAL_SERVICE_NAME="$(circleci env subst "$ORB_EVAL_SERVICE_NAME")" +ORB_EVAL_CLUSTER_NAME="$(circleci env subst "$ORB_EVAL_CLUSTER_NAME")" +ORB_EVAL_TASK_DEF_ARN="$(circleci env subst "$ORB_EVAL_TASK_DEF_ARN")" +ORB_EVAL_PROFILE_NAME="$(circleci env subst "$ORB_EVAL_PROFILE_NAME")" if [ "$ORB_EVAL_TASK_DEF_ARN" = "" ]; then echo "Invalid task-definition-arn parameter value: $ORB_EVAL_TASK_DEF_ARN" From b9136b5085db27367aa01cd47a948229c4462430 Mon Sep 17 00:00:00 2001 From: Brian Vu Date: Fri, 2 Jun 2023 16:11:27 -0700 Subject: [PATCH 14/16] refactor: remove global shellcheck exclusions --- .circleci/config.yml | 1 - src/scripts/deploy_ecs_scheduled_task.sh | 1 + src/scripts/get_prev_task.sh | 1 + src/scripts/register_new_task_def.sh | 1 + src/scripts/run_task.sh | 1 + src/scripts/update_bluegreen_service_via_task_def.sh | 1 + src/scripts/update_service_via_task_def.sh | 1 + src/scripts/update_task_definition_from_json.sh | 1 + src/scripts/verify_revision_is_deployed.sh | 1 + 9 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1649920b..212586b7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,7 +18,6 @@ workflows: - orb-tools/review: filters: *filters - shellcheck/check: - exclude: SC2148,SC2038,SC2086,SC2002,SC2016 filters: *filters - orb-tools/continue: orb_name: aws-ecs diff --git a/src/scripts/deploy_ecs_scheduled_task.sh b/src/scripts/deploy_ecs_scheduled_task.sh index 9a4bc20b..35673857 100644 --- a/src/scripts/deploy_ecs_scheduled_task.sh +++ b/src/scripts/deploy_ecs_scheduled_task.sh @@ -1,3 +1,4 @@ +#!/bin/bash td_arn=$CCI_ORB_AWS_ECS_REGISTERED_TASK_DFN if [ -z "$td_arn" ]; then diff --git a/src/scripts/get_prev_task.sh b/src/scripts/get_prev_task.sh index 8c4ecc70..3907cb20 100644 --- a/src/scripts/get_prev_task.sh +++ b/src/scripts/get_prev_task.sh @@ -1,3 +1,4 @@ +#!/bin/bash set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. diff --git a/src/scripts/register_new_task_def.sh b/src/scripts/register_new_task_def.sh index 490e5d94..be494ead 100644 --- a/src/scripts/register_new_task_def.sh +++ b/src/scripts/register_new_task_def.sh @@ -1,3 +1,4 @@ +#!/bin/bash set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. diff --git a/src/scripts/run_task.sh b/src/scripts/run_task.sh index 09616452..bde2ad90 100644 --- a/src/scripts/run_task.sh +++ b/src/scripts/run_task.sh @@ -1,3 +1,4 @@ +#!/bin/bash if [[ $EUID == 0 ]]; then export SUDO=""; else export SUDO="sudo"; fi # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. ORB_EVAL_CLUSTER_NAME=$(circleci env subst "$ORB_EVAL_CLUSTER_NAME") diff --git a/src/scripts/update_bluegreen_service_via_task_def.sh b/src/scripts/update_bluegreen_service_via_task_def.sh index 39dded85..c2a18f62 100644 --- a/src/scripts/update_bluegreen_service_via_task_def.sh +++ b/src/scripts/update_bluegreen_service_via_task_def.sh @@ -1,3 +1,4 @@ +#!/bin/bash set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. diff --git a/src/scripts/update_service_via_task_def.sh b/src/scripts/update_service_via_task_def.sh index 9fd05975..e13f9b40 100644 --- a/src/scripts/update_service_via_task_def.sh +++ b/src/scripts/update_service_via_task_def.sh @@ -1,3 +1,4 @@ +#!/bin/bash set -o noglob # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. diff --git a/src/scripts/update_task_definition_from_json.sh b/src/scripts/update_task_definition_from_json.sh index 14258b23..15a09987 100644 --- a/src/scripts/update_task_definition_from_json.sh +++ b/src/scripts/update_task_definition_from_json.sh @@ -1,3 +1,4 @@ +#!/bin/bash ORB_EVAL_PROFILE_NAME=$(circleci env subst "$ORB_EVAL_PROFILE_NAME") ORB_EVAL_TASK_DEFINITION_JSON=$(circleci env subst "$ORB_EVAL_TASK_DEFINITION_JSON") diff --git a/src/scripts/verify_revision_is_deployed.sh b/src/scripts/verify_revision_is_deployed.sh index 85486eee..ed2ce3bf 100644 --- a/src/scripts/verify_revision_is_deployed.sh +++ b/src/scripts/verify_revision_is_deployed.sh @@ -1,3 +1,4 @@ +#!/bin/bash # These variables are evaluated so the config file may contain and pass in environment variables to the parameters. ORB_EVAL_FAMILY="$(circleci env subst "$ORB_EVAL_FAMILY")" ORB_EVAL_SERVICE_NAME="$(circleci env subst "$ORB_EVAL_SERVICE_NAME")" From 95b3ff0705dd593f096226e4ddb948d4a86abd80 Mon Sep 17 00:00:00 2001 From: Brian Vu Date: Fri, 2 Jun 2023 16:22:47 -0700 Subject: [PATCH 15/16] fix: address shell check errors --- src/scripts/install_ecs_cli.sh | 1 + tests/teardown.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/scripts/install_ecs_cli.sh b/src/scripts/install_ecs_cli.sh index 437a45bc..056a295d 100644 --- a/src/scripts/install_ecs_cli.sh +++ b/src/scripts/install_ecs_cli.sh @@ -1,3 +1,4 @@ +#!/bin/bash if [ $EUID == 0 ]; then export SUDO=""; else export SUDO="sudo"; fi ORB_EVAL_VERSION=$(circleci env subst "${ORB_EVAL_VERSION}") diff --git a/tests/teardown.sh b/tests/teardown.sh index 7878e7b2..a267d58c 100755 --- a/tests/teardown.sh +++ b/tests/teardown.sh @@ -1,3 +1,4 @@ +#!/bin/sh BASEDIR=$(pwd) tearDownTF() { @@ -5,6 +6,7 @@ tearDownTF() { terraform destroy -auto-approve \ -var "aws_access_key=${AWS_ACCESS_KEY_ID}" \ -var "aws_secret_key=${AWS_SECRET_ACCESS_KEY}" \ + -var "aws_session_token=${AWS_SESSION_TOKEN}" \ -var "aws_region=${AWS_DEFAULT_REGION}" \ -var "aws_account_id=${AWS_ACCOUNT_ID}" \ -var "aws_resource_prefix=${AWS_RESOURCE_PREFIX}" From 6f926173910ff5c4a5282c63b98587baa28cc3bb Mon Sep 17 00:00:00 2001 From: Brian Vu Date: Mon, 5 Jun 2023 10:33:40 -0700 Subject: [PATCH 16/16] chore: update provider version --- tests/terraform_setup/fargate/terraform.tf | 2 +- tests/terraform_setup/fargate_codedeploy/terraform.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/terraform_setup/fargate/terraform.tf b/tests/terraform_setup/fargate/terraform.tf index 91332661..9b8a715f 100644 --- a/tests/terraform_setup/fargate/terraform.tf +++ b/tests/terraform_setup/fargate/terraform.tf @@ -1,7 +1,7 @@ terraform { required_providers { aws = { - version = "~> 4.22.0" + version = "~> 4.63.0" } } backend "s3" { diff --git a/tests/terraform_setup/fargate_codedeploy/terraform.tf b/tests/terraform_setup/fargate_codedeploy/terraform.tf index 08d7132f..316f050c 100644 --- a/tests/terraform_setup/fargate_codedeploy/terraform.tf +++ b/tests/terraform_setup/fargate_codedeploy/terraform.tf @@ -1,7 +1,7 @@ terraform { required_providers { aws = { - version = "~> 4.22.0" + version = "~> 4.63.0" } } backend "s3" {