Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull Request to Merge hotfix into main #102

Merged
merged 72 commits into from
May 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
ea26d68
:sparkles: Fixing the deploy
pzalep1 May 23, 2022
e37aa65
:sparkles: Fixing env
pzalep1 May 23, 2022
b4d28e4
:sparkles: Giving it a try
pzalep1 May 23, 2022
b4e40ef
:sparkles: Change environment variable accessor
pzalep1 May 23, 2022
5d3f171
:sparkles: Change AWS Region env name
pzalep1 May 23, 2022
b5dccd5
:sparkles: Add echo and fix build
pzalep1 May 23, 2022
dac33db
Add echos for debugging
pzalep1 May 23, 2022
1270999
Pass environment variable with parameters
pzalep1 May 23, 2022
a94e94b
:sparkles: Add an echo
pzalep1 May 23, 2022
b27759f
:sparkles: Add env for testing purposes
pzalep1 May 23, 2022
ec4e65b
:sparkles: Echo variable
pzalep1 May 23, 2022
d8dbe90
Echo
pzalep1 May 23, 2022
4333c16
Change YEET
pzalep1 May 23, 2022
2204a3c
Change variable output
pzalep1 May 23, 2022
6f67334
Fix parameter
pzalep1 May 23, 2022
9163f75
Fix regions
pzalep1 May 23, 2022
e1d8cc4
Variable echo
pzalep1 May 23, 2022
d850289
Update to use parameters
pzalep1 May 23, 2022
9272170
Adding parameters
pzalep1 May 23, 2022
6d6646f
Add slack name
pzalep1 May 23, 2022
b7bba74
Adding curly braces
pzalep1 May 23, 2022
fa4f9ab
Updates
pzalep1 May 23, 2022
c9ed9c2
:truck: Move environment variables
pzalep1 May 23, 2022
40f8880
Fix linting
pzalep1 May 23, 2022
12cc88d
Fix linting
pzalep1 May 23, 2022
640204f
Move environment back
pzalep1 May 23, 2022
28be1a5
:sparkles: Fix build
pzalep1 May 23, 2022
0bb4794
Fix build
pzalep1 May 23, 2022
ed4278f
Fix build
pzalep1 May 23, 2022
067cfb6
Run it with $
pzalep1 May 23, 2022
40140c1
:truck: Move environment to setup
pzalep1 May 23, 2022
5d8f998
:sparkles: Fix linting
pzalep1 May 23, 2022
0b90110
Fix linting
pzalep1 May 23, 2022
54771e0
Adding missing environment variable
pzalep1 May 23, 2022
a530053
Fix region
pzalep1 May 23, 2022
f0f26ce
Fixing linting
pzalep1 May 23, 2022
6e15535
Add echo for Default
pzalep1 May 24, 2022
d7fa323
Environment != $Environment Variables
pzalep1 May 24, 2022
1fc5dd1
:sparkles: Fix the deployment
pzalep1 May 24, 2022
c538b37
:sparkles: S3 fixes
pzalep1 May 24, 2022
f5ddc6a
:sparkles: Fix the s3/sync
pzalep1 May 24, 2022
edd8091
change apk to apt
May 24, 2022
785882a
Merge pull request #100 from Cyber4All/eb_fix
Cwagne17 May 24, 2022
12aa495
:sparkles: Fix orb
pzalep1 May 24, 2022
065f820
Merge branch 'hotfix' of https://github.com/Cyber4All/orb into hotfix
pzalep1 May 24, 2022
b265b63
Fix whitespace
pzalep1 May 24, 2022
805db58
change jobs
May 24, 2022
dbe8a08
Merge pull request #103 from Cyber4All/eb_fix
Cwagne17 May 24, 2022
e55b244
added defualt value for ecs deploy function-name
mfranz1 May 24, 2022
850dad5
added s3 bucket location for lambda function
mfranz1 May 24, 2022
234b77b
set default container name for ecs deploy
mfranz1 May 24, 2022
f63603b
corrected env syntax to read variable
mfranz1 May 24, 2022
fbbc9f0
specified family as image-name
mfranz1 May 24, 2022
0de3cd1
output more
May 24, 2022
1fdb6ab
Merge pull request #110 from Cyber4All/docker_scan
Cwagne17 May 24, 2022
732e2cb
found error, no tmp dir
May 24, 2022
48fb965
Merge pull request #112 from Cyber4All/docker_scan
Cwagne17 May 24, 2022
b78daff
Adding parameter
pzalep1 May 24, 2022
786c656
Merge branch 'hotfix' of https://github.com/Cyber4All/orb into hotfix
pzalep1 May 24, 2022
eece399
change docker image
May 24, 2022
fc44ca6
Merge pull request #115 from Cyber4All/docker_scan
Cwagne17 May 24, 2022
2d2c0e3
Fix default
pzalep1 May 24, 2022
6bd3e7b
Merge branch 'hotfix' of https://github.com/Cyber4All/orb into hotfix
pzalep1 May 24, 2022
4109817
add docker-image
May 24, 2022
d1c0937
remove quotes
May 24, 2022
83b9f78
Merge pull request #116 from Cyber4All/docker_scan
Cwagne17 May 24, 2022
cc8608c
list all files to see whats going on
May 24, 2022
76bf348
Merge pull request #118 from Cyber4All/docker_scan
Cwagne17 May 24, 2022
1d06a01
remove docker org
pzalep1 May 24, 2022
4a22482
Merge branch 'hotfix' of https://github.com/Cyber4All/orb into hotfix
pzalep1 May 24, 2022
e120654
corrected docker org and syntax of env
mfranz1 May 24, 2022
01e1fd5
corrected syntax for container-name and type env var
mfranz1 May 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/jobs/check-docker-semver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ parameters:
default: "cyber4all"
description: |
The name of the docker organization
docker-image:
type: string
default: "cimg/go:1.18"
description: |
The docker image that will be used as an executor

docker:
- image: cimg/go:1.18
- image: <<parameters.docker-image>>

steps:
- checkout
Expand Down
16 changes: 9 additions & 7 deletions src/jobs/deploy-eb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,22 +78,24 @@ steps:
echo 'Either "isNode" or "isDocker" must be true.'
exit 1
fi
- aws-eb/setup
- run:
name: Install AWS EB Cli
command: |
sudo apt update && sudo apt install -y python3-pip && sudo pip3 install awsebcli
- aws-cli/setup:
aws-access-key-id: <<parameters.aws-access-key-id>>
aws-secret-access-key: <<parameters.aws-secret-access-key>>
aws-region: <<parameters.aws-region>>
- attach_workspace:
at: .
- run:
name: Deploy to Elastic Beanstalk with docker platform
command: |
eb init "<<parameters.application-name>>" --region "$AWS_DEFAULT_REGION" -p $EB_PARAM_PLATFORM
eb init "<<parameters.application-name>>" --region ${<<parameters.aws-region>>} -p $EB_PARAM_PLATFORM
eb deploy "<<parameters.environment-name>>" --verbose --label "${CIRCLE_PROJECT_REPONAME}-v<<parameters.version>>"
- slack/notify:
event: fail
template: basic_fail_1
- slack/notify:
event: pass
custom: "<<include(message_templates/deploy_aws_success.json)>>"

environment:
AWS_ACCESS_KEY_ID: "$<<parameters.aws-access-key-id>>"
AWS_SECRET_ACCESS_KEY: "$<<parameters.aws-secret-access-key>>"
AWS_DEFAULT_REGION: "$<<parameters.aws-region>>"
15 changes: 10 additions & 5 deletions src/jobs/deploy-ecs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,14 @@ parameters:
description: |
The short name or full ARN of the cluster that hosts the service.
# Not Required Parameters
container-name:
docker-user-org:
type: string
default: ''
default: 'cyber4all'
description: |
Name of the docker organization for the images
container-name:
type: env_var_name
default: ECS_CONTAINER_NAME
description: |
Name of the container name defined in the ecs task-definition
(defaults to image-name)
Expand Down Expand Up @@ -109,14 +114,14 @@ steps:
aws-secret-access-key: <<parameters.aws-secret-access-key>>
aws-region: <<parameters.aws-region>>
- aws-ecs/update-task-definition:
container-image-name-updates: "container=<<parameters.container-name>>,image-and-tag=<<parameters.image-name>>:<<parameters.tag>>"
container-image-name-updates: "container=${<<parameters.container-name>>},image-and-tag=<<parameters.docker-user-org>>/<<parameters.image-name>>:<<parameters.tag>>"
family: <<parameters.family>>
- when:
condition: <<parameters.isService>>
steps:
- aws-ecs/update-service:
cluster-name: <<parameters.cluster-name>>
family: <<parameters.family>>
family: <<parameters.image-name>>
service-name: "$ECS_PARAM_SERVICE_NAME"
skip-task-definition-registration: true
verify-revision-is-deployed: true
Expand All @@ -129,5 +134,5 @@ steps:

environment:
ECS_PARAM_SERVICE_NAME: <<parameters.service-name>>
ECS_PARAM_CONTAINER_NAME: <<parameters.container-name>>
ECS_PARAM_CONTAINER_NAME: ${<<parameters.container-name>>}
ECS_PARAM_FAMILY: <<parameters.family>>
9 changes: 7 additions & 2 deletions src/jobs/deploy-lambda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ parameters:
https://semver.org/spec/v2.0.0.html
function-name:
type: string
default: ''
default: FUNCTION_NAME
description: |
The name of the lambda function to be updated.
# Optional Parameters with Defaults
Expand All @@ -27,6 +27,11 @@ parameters:
description: |
Set to True is build and sync changes with S3 and invalidate CF index.html.
(defaults to false)
s3-bucket:
type: env_var_name
default: S3_BUCKET
description: |
S3 Bucket location for lamdba function
aws-region:
type: env_var_name
default: AWS_REGION_N_VA
Expand Down Expand Up @@ -89,7 +94,7 @@ steps:
- run:
name: Update Lambda Function code
command: >
aws lambda update-function-code --function-name <<parameters.function-name>> --zip-file fileb://./build.zip
aws lambda update-function-code --function-name <<parameters.function-name>> --zip-file fileb://./build.zip --s3-bucket <<parameters.s3-bucket>>
- slack/notify:
event: fail
template: basic_fail_1
Expand Down
15 changes: 9 additions & 6 deletions src/jobs/deploy-s3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ parameters:
default: AWS_REGION_N_VA
description: |
Name of environment variable storing the AWS region
cloudfront-id:
type: env_var_name
default: CLOUDFRONT_ID
description: |
Name of the environment variable for the cloudfront id
aws-access-key-id:
type: env_var_name
default: MACHINE_AWS_CF_AccessKey
Expand Down Expand Up @@ -84,8 +89,11 @@ steps:
condition: <<parameters.deploy>>
steps:
- aws-s3/sync:
aws-access-key-id: << parameters.aws-access-key-id >>
aws-region: << parameters.aws-region >>
aws-secret-access-key: << parameters.aws-secret-access-key >>
from: <<parameters.source>>
to: "s3://$AWS_S3_BUCKET"
to: "s3://$<<parameters.s3-bucket>>"
- run:
name: Invalidate index.html in CloudFront
command: >
Expand All @@ -96,8 +104,3 @@ steps:
- slack/notify:
event: pass
custom: "<<include(message_templates/deploy_aws_success.json)>>"
environment:
AWS_ACCESS_KEY_ID: "$<<parameters.aws-access-key-id>>"
AWS_SECRET_ACCESS_KEY: "$<<parameters.aws-secret-access-key>>"
AWS_REGION: "${<<parameters.aws-region>>}"
AWS_S3_BUCKET: "${<<parameters.s3-bucket>>}"
45 changes: 26 additions & 19 deletions src/jobs/scan-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,14 @@ parameters:
description: |
Path of the dockerfile to be scanned
type: string
docker-image:
default: "cimg/go:1.18"
description: |
Docker image name to use as executor
type: string

docker:
- image: cimg/go:1.18
- image: <<parameters.docker-image>>

steps:
- checkout
Expand Down Expand Up @@ -104,51 +109,53 @@ steps:
- run:
name: Login to Snyk
command: >
docker scan --login --token "$<<parameters.snyk-token>>" --accept-license
docker scan --login --token ${<<parameters.snyk-token>>} --accept-license
- run:
name: Scan Image
command: |
echo 'export OUTPUT_FILENAME=$(date +%s)-<<parameters.image>>:<<parameters.tag>>' >> $BASH_ENV
OUTPUT_FILENAME=$(date +%s)-<<parameters.image>>:<<parameters.tag>>

docker build -t <<parameters.organization>>/<<parameters.image>>:<<parameters.tag>> .

docker scan --json \
--accept-license \
--severity=high \
--file <<parameters.dockerfile-path>> \
<<parameters.organization>>/<<parameters.image>>:<<parameters.tag>> > "/tmp/$OUTPUT_FILENAME.json"
<<parameters.organization>>/<<parameters.image>>:<<parameters.tag>> > $OUTPUT_FILENAME.json

ls -al

cat $OUTPUT_FILENAME.json

apk add jq
sudo apt install jq

if jq -e '.[0].vulnerabilities == []' "/tmp/$OUTPUT_FILENAME.json" > /dev/null; then
cat /tmp/$OUTPUT_FILENAME.json
rm /tmp/$OUTPUT_FILENAME.json
if jq -e '.[0].vulnerabilities == []' "$OUTPUT_FILENAME.json" > /dev/null; then
cat $OUTPUT_FILENAME.json
rm $OUTPUT_FILENAME.json
circleci-agent step halt
fi

docker scan \
--accept-license \
--severity=high \
--file <<parameters.dockerfile-path>> \
<<parameters.organization>>/<<parameters.image>>:<<parameters.tag>> > "/tmp/$OUTPUT_FILENAME.txt"
- run:
name: Upload Files to S3
command: |
if [ -f <<parameters.image>>/${OUTPUT_FILENAME}.txt && -f <<parameters.image>>/${OUTPUT_FILENAME}.json ]; then
echo <<parameters.image>>/${OUTPUT_FILENAME}.txt
<<parameters.organization>>/<<parameters.image>>:<<parameters.tag>> > $OUTPUT_FILENAME.txt

if [ -f <<parameters.image>>/$OUTPUT_FILENAME.txt && -f <<parameters.image>>/$OUTPUT_FILENAME.json ]; then
echo <<parameters.image>>/$OUTPUT_FILENAME.txt

aws s3api put-object \
--body "/tmp/${OUTPUT_FILENAME}.txt" \
--body "$OUTPUT_FILENAME.txt" \
--bucket <<parameters.aws-s3-bucket>> \
--key "<<parameters.image>>/${OUTPUT_FILENAME}.txt"
--key "<<parameters.image>>/$OUTPUT_FILENAME.txt"

aws s3api put-object \
--body "/tmp/${OUTPUT_FILENAME}.json" \
--body "$OUTPUT_FILENAME.json" \
--bucket <<parameters.aws-s3-bucket>> \
--key "<<parameters.image>>/${OUTPUT_FILENAME}.json"
--key "<<parameters.image>>/$OUTPUT_FILENAME.json"

S3_URL="https://s3.console.aws.amazon.com/s3/object/"
echo 'export S3_OBJECT_URL=${S3_URL}<<parameters.aws-s3-bucket>>?region=<<parameters.aws-region>>&prefix=<<parameters.image>>/${OUTPUT_FILENAME}.txt' >> $BASH_ENV
echo 'export S3_OBJECT_URL=${S3_URL}<<parameters.aws-s3-bucket>>?region=<<parameters.aws-region>>&prefix=<<parameters.image>>/$OUTPUT_FILENAME.txt' >> $BASH_ENV
fi
- slack/notify:
event: fail
Expand Down