Skip to content

Commit aef4a3a

Browse files
committed
first implementation of saving images to s3
1 parent 7dc07b6 commit aef4a3a

File tree

5 files changed

+59
-32
lines changed

5 files changed

+59
-32
lines changed

.env.defaults

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
# development. Don't use these values for production deployment!
33
JWTSECRET=super-secret-string
44
JWTAUDIENCE=api.dev
5-
AWS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
5+
AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
66
AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx
77
AWS_BUCKET=aws-bucket

Jenkinsfile

+32-28
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ node {
55
// Jenkins HOME Folder
66
env.MINISHIFT_HOME = "${env.JENKINS_HOME}/.minishift"
77

8-
withEnv(['AWS_BUCKET=jobs.amazeeio.services']) {
9-
withCredentials([usernamePassword(credentialsId: 'aws-s3-lagoon', usernameVariable: 'AWS_KEY_ID', passwordVariable: 'AWS_SECRET_ACCESS_KEY')]) {
8+
withEnv(['AWS_BUCKET=jobs.amazeeio.services', 'AWS_DEFAULT_REGION=us-west-2']) {
9+
withCredentials([usernamePassword(credentialsId: 'aws-s3-lagoon', usernameVariable: 'AWS_ACCESS_KEY_ID', passwordVariable: 'AWS_SECRET_ACCESS_KEY')]) {
1010
try {
1111
env.CI_BUILD_TAG = env.BUILD_TAG.replaceAll('%2f','').replaceAll("[^A-Za-z0-9]+", "").toLowerCase()
1212
env.SAFEBRANCH_NAME = env.BRANCH_NAME.replaceAll('%2f','-').replaceAll("[^A-Za-z0-9]+", "-").toLowerCase()
@@ -26,15 +26,15 @@ node {
2626
stage ('build images') {
2727
sh "make build"
2828
}
29-
stage ('start services') {
30-
sh "make kill"
31-
sh "make up"
32-
sh "sleep 60"
33-
}
29+
// stage ('start services') {
30+
// sh "make kill"
31+
// sh "make up"
32+
// sh "sleep 60"
33+
// }
3434
},
3535
'start minishift': {
3636
stage ('start minishift') {
37-
sh 'make minishift'
37+
// sh 'make minishift'
3838
}
3939
}
4040
)
@@ -44,26 +44,30 @@ node {
4444
throw e
4545
}
4646

47-
parallel (
48-
'_tests': {
49-
stage ('run tests') {
50-
try {
51-
sh "make push-minishift"
52-
sh "make tests -j4"
53-
} catch (e) {
54-
echo "Something went wrong, trying to cleanup"
55-
cleanup()
56-
throw e
57-
}
58-
cleanup()
59-
}
60-
},
61-
'logs': {
62-
stage ('all') {
63-
sh "make logs"
64-
}
65-
}
66-
)
47+
// parallel (
48+
// '_tests': {
49+
// stage ('run tests') {
50+
// try {
51+
// sh "make push-minishift"
52+
// sh "make tests -j4"
53+
// } catch (e) {
54+
// echo "Something went wrong, trying to cleanup"
55+
// cleanup()
56+
// throw e
57+
// }
58+
// cleanup()
59+
// }
60+
// },
61+
// 'logs': {
62+
// stage ('all') {
63+
// sh "make logs"
64+
// }
65+
// }
66+
// )
67+
}
68+
69+
stage ('save-images-s3') {
70+
sh "make s3-save -j8"
6771
}
6872

6973
stage ('publish-amazeeiolagoon') {

Makefile

+23
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,29 @@ $(publish-amazeeiolagoon-serviceimages):
519519
$(eval image = $(subst __,:,$(image)))
520520
$(call docker_publish_amazeeiolagoon_serviceimages,$(image))
521521

522+
s3-save = $(foreach image,$(base-images) $(service-images),[s3-save]-$(image))
523+
# save all images to s3
524+
.PHONY: s3-save
525+
s3-save: $(s3-save)
526+
# tag and push of each image
527+
.PHONY: $(s3-save)
528+
$(s3-save):
529+
# remove the prefix '[s3-save]-' first
530+
$(eval image = $(subst [s3-save]-,,$@))
531+
$(eval image = $(subst __,:,$(image)))
532+
docker save $(CI_BUILD_TAG)/$(image) | gzip -9 | aws s3 cp - s3://lagoon-images/$(image).tar.gz
533+
534+
s3-load = $(foreach image,$(base-images) $(service-images),[s3-load]-$(image))
535+
# save all images to s3
536+
.PHONY: s3-load
537+
s3-load: $(s3-load)
538+
# tag and push of each image
539+
.PHONY: $(s3-load)
540+
$(s3-load):
541+
# remove the prefix '[s3-load]-' first
542+
$(eval image = $(subst [s3-load]-,,$@))
543+
$(eval image = $(subst __,:,$(image)))
544+
curl -s https://s3.us-east-2.amazonaws.com/lagoon-images/$(image).tar.gz | gunzip -c | docker load
522545

523546
# Clean all build touches, which will case make to rebuild the Docker Images (Layer caching is
524547
# still active, so this is a very safe command)

docker-compose.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ services:
6060
- ./services/openshiftbuilddeploymonitor/src:/app/services/openshiftbuilddeploymonitor/src
6161
- ./node-packages:/app/node-packages:delegated
6262
environment:
63-
- AWS_KEY_ID=${AWS_KEY_ID:-XXXXXXXXXXXXXXXXXXXX}
63+
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-XXXXXXXXXXXXXXXXXXXX}
6464
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-xxxxxxxxxxxxxxxxxxxx}
6565
- AWS_BUCKET=${AWS_BUCKET:-aws-bucket}
6666
labels:

services/openshiftbuilddeploymonitor/src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ class BuildNotCompletedYet extends Error {
1818
}
1919
}
2020

21-
const accessKeyId = process.env.AWS_KEY_ID
21+
const accessKeyId = process.env.AWS_ACCESS_KEY_ID
2222
const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY
2323
const bucket = process.env.AWS_BUCKET
2424
const region = process.env.AWS_REGION || 'us-east-2'
2525

2626

2727
if ( !accessKeyId || !secretAccessKey || !bucket) {
28-
logger.error('AWS_KEY_ID or AWS_SECRET_ACCESS_KEY or AWS_BUCKET not set.')
28+
logger.error('AWS_ACCESS_KEY_ID or AWS_SECRET_ACCESS_KEY or AWS_BUCKET not set.')
2929
}
3030

3131
AWS.config.update({accessKeyId: accessKeyId, secretAccessKey: secretAccessKey, region: region});

0 commit comments

Comments
 (0)