diff --git a/bin/terraform-dependencies/v2/get-tfvars b/bin/terraform-dependencies/v2/get-tfvars index d453a5b..6184c78 100755 --- a/bin/terraform-dependencies/v2/get-tfvars +++ b/bin/terraform-dependencies/v2/get-tfvars @@ -55,34 +55,76 @@ if [ "$TFVARS_BUCKET_EXISTS" == 1 ] then echo "==> Downloading tfvars ..." - if aws s3api head-object --bucket "$TFVARS_BUCKET_NAME" --key "$DEAFULT_TFAVRS_FILE_NAME" > /dev/null 2>&1 + TFVAR_FILE_META_JSON="$( + "$APP_ROOT/bin/dalmatian" aws-sso run-command \ + -p dalmatian-main \ + s3api head-object \ + --bucket "$TFVARS_BUCKET_NAME" \ + --key "$DEAFULT_TFAVRS_FILE_NAME" \ + 2>/dev/null || true + )" + if [[ "$TFVAR_FILE_META_JSON" ]] then if [[ "$NEW_TFVARS_ONLY" == 0 || ! -f "$CONFIG_TFVARS_DIR/$DEAFULT_TFAVRS_FILE_NAME" ]] then aws s3 cp "s3://$TFVARS_BUCKET_NAME/$DEAFULT_TFAVRS_FILE_NAME" "$CONFIG_TFVARS_DIR/." fi + TFVAR_FILE_REMOTE_LAST_MODIFIED="$(echo "$TFVAR_FILE_META_JSON" | jq -r '.LastModified' | gdate +%s)" + TFVAR_FILE_LOCAL_LAST_MODIFIED="$(gdate -r "$CONFIG_TFVARS_DIR/$DEAFULT_TFAVRS_FILE_NAME" +%s)" + if [[ "$TFVAR_FILE_REMOTE_LAST_MODIFIED" -gt "$TFVAR_FILE_LOCAL_LAST_MODIFIED" ]] + then + aws s3 cp "s3://$TFVARS_BUCKET_NAME/$DEAFULT_TFAVRS_FILE_NAME" "$CONFIG_TFVARS_DIR/." + fi DEFAULT_TFVARS_EXISTS=1 else DEFAULT_TFVARS_EXISTS=0 fi - if aws s3api head-object --bucket "$TFVARS_BUCKET_NAME" --key "$CONFIG_GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE" > /dev/null 2>&1 + TFVAR_FILE_META_JSON="$( + "$APP_ROOT/bin/dalmatian" aws-sso run-command \ + -p dalmatian-main \ + s3api head-object \ + --bucket "$TFVARS_BUCKET_NAME" \ + --key "$CONFIG_GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE" \ + 2>/dev/null || true + )" + if [[ "$TFVAR_FILE_META_JSON" ]] then if [[ "$NEW_TFVARS_ONLY" == 0 || ! -f "$CONFIG_TFVARS_DIR/$CONFIG_GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE" ]] then aws s3 cp "s3://$TFVARS_BUCKET_NAME/$CONFIG_GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE" "$CONFIG_TFVARS_DIR/." fi + TFVAR_FILE_REMOTE_LAST_MODIFIED="$(echo "$TFVAR_FILE_META_JSON" | jq -r '.LastModified' | gdate +%s)" + TFVAR_FILE_LOCAL_LAST_MODIFIED="$(gdate -r "$CONFIG_TFVARS_DIR/$CONFIG_GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE" +%s)" + if [[ "$TFVAR_FILE_REMOTE_LAST_MODIFIED" -gt "$TFVAR_FILE_LOCAL_LAST_MODIFIED" ]] + then + aws s3 cp "s3://$TFVARS_BUCKET_NAME/$CONFIG_GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE" "$CONFIG_TFVARS_DIR/." + fi GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE_EXISTS=1 else GLOBAL_ACCOUNT_BOOSTRAP_TFVARS_FILE_EXISTS=0 fi - if aws s3api head-object --bucket "$TFVARS_BUCKET_NAME" --key "$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" > /dev/null 2>&1 + TFVAR_FILE_META_JSON="$( + "$APP_ROOT/bin/dalmatian" aws-sso run-command \ + -p dalmatian-main \ + s3api head-object \ + --bucket "$TFVARS_BUCKET_NAME" \ + --key "$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" \ + 2>/dev/null || true + )" + if [[ "$TFVAR_FILE_META_JSON" ]] then if [[ "$NEW_TFVARS_ONLY" == 0 || ! -f "$CONFIG_TFVARS_DIR/$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" ]] then aws s3 cp "s3://$TFVARS_BUCKET_NAME/$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" "$CONFIG_TFVARS_DIR/." fi + TFVAR_FILE_REMOTE_LAST_MODIFIED="$(echo "$TFVAR_FILE_META_JSON" | jq -r '.LastModified' | gdate +%s)" + TFVAR_FILE_LOCAL_LAST_MODIFIED="$(gdate -r "$CONFIG_TFVARS_DIR/$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" +%s)" + if [[ "$TFVAR_FILE_REMOTE_LAST_MODIFIED" -gt "$TFVAR_FILE_LOCAL_LAST_MODIFIED" ]] + then + aws s3 cp "s3://$TFVARS_BUCKET_NAME/$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" "$CONFIG_TFVARS_DIR/." + fi GLOBAL_INFRASTRUCTURE_TFVARS_FILE_EXISTS=1 else GLOBAL_INFRASTRUCTURE_TFVARS_FILE_EXISTS=0 @@ -137,12 +179,26 @@ do WORKSPACE_TFVARS_FILE_EXISTS=0 if [ "$TFVARS_BUCKET_EXISTS" == 1 ] then - if aws s3api head-object --bucket "$TFVARS_BUCKET_NAME" --key "$WORKSPACE_TFVARS_FILE" > /dev/null 2>&1 + TFVAR_FILE_META_JSON="$( + "$APP_ROOT/bin/dalmatian" aws-sso run-command \ + -p dalmatian-main \ + s3api head-object \ + --bucket "$TFVARS_BUCKET_NAME" \ + --key "$CONFIG_GLOBAL_INFRASTRUCTURE_TFVARS_FILE" \ + 2>/dev/null || true + )" + if [[ "$TFVAR_FILE_META_JSON" ]] then if [[ "$NEW_TFVARS_ONLY" == 0 || ! -f "$CONFIG_TFVARS_DIR/$WORKSPACE_TFVARS_FILE" ]] then aws s3 cp "s3://$TFVARS_BUCKET_NAME/$WORKSPACE_TFVARS_FILE" "$CONFIG_TFVARS_DIR/." fi + TFVAR_FILE_REMOTE_LAST_MODIFIED="$(echo "$TFVAR_FILE_META_JSON" | jq -r '.LastModified' | gdate +%s)" + TFVAR_FILE_LOCAL_LAST_MODIFIED="$(gdate -r "$CONFIG_TFVARS_DIR/$WORKSPACE_TFVARS_FILE" +%s)" + if [[ "$TFVAR_FILE_REMOTE_LAST_MODIFIED" -gt "$TFVAR_FILE_LOCAL_LAST_MODIFIED" ]] + then + aws s3 cp "s3://$TFVARS_BUCKET_NAME/$WORKSPACE_TFVARS_FILE" "$CONFIG_TFVARS_DIR/." + fi WORKSPACE_TFVARS_ADD_TO_PATHS_JSON=1 WORKSPACE_TFVARS_FILE_EXISTS=1 fi