Skip to content

Commit 066d604

Browse files
yehiyamnassiharel
authored andcommitted
support insecure registry (#413)
* support insecure registry needs PR GoogleContainerTools/kaniko#683 to be merged
1 parent 8e56c1b commit 066d604

6 files changed

Lines changed: 66 additions & 6 deletions

File tree

core/algorithm-builder/lib/builds/build-algorithm-image-kaniko.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env bash
22

33
# This script used to create a specific algorithm image
4-
4+
set -e
55
source $PWD/lib/builds/build-utils.sh
66

77
DOCKER_FILE="__DockerFile__"
@@ -98,4 +98,8 @@ echo
9898

9999
echo
100100
dockerBuildKaniko ${IMAGE_NAME} ${BUILD_PATH} ${DOCKER_FILE} ${TMP_FOLDER}/workspace ${TMP_FOLDER}/commands
101+
ret=${exit_code}
102+
echo build finished with code $ret
101103
echo
104+
105+
exit $ret

core/algorithm-builder/lib/builds/build-utils.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dockerBuildKaniko() {
2828
cp -r ${buildPath}/* ${workspace}
2929
# echo copy docker creds
3030
# cp ~/.docker/config.json ${commands}/
31-
echo "/kaniko/executor --dockerfile ./docker/__DockerFile__ --context dir:///workspace/ --destination $image" > ${commands}/run
31+
echo "/kaniko/executor --dockerfile ./docker/__DockerFile__ --insecure --insecure-pull --context dir:///workspace/ --destination $image" > ${commands}/run
3232
chmod +x ${commands}/run
3333
cat ${commands}/run
3434
touch ${commands}/start
@@ -38,6 +38,12 @@ dockerBuildKaniko() {
3838
done
3939
echo build done
4040
cat ${commands}/output
41+
# >&2 cat ${commands}/errors
42+
if [ -f "${commands}/code_ok" ]; then
43+
exit_code=0
44+
else
45+
exit_code=1
46+
fi
4147
}
4248

4349
dockerBuild() {

core/algorithm-builder/lib/builds/docker-builder.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const storageManager = require('@hkube/storage-manager');
88
const log = require('@hkube/logger').GetLogFromContainer();
99
const States = require('../consts/States');
1010
const component = require('../consts/components').DOCKER_BUILDER;
11+
const { KANIKO, DOCKER } = require('../consts/buildModes');
1112
const stateManger = require('../state/state-manager');
1213

1314
const _ensureDirs = async (dirs) => {
@@ -80,8 +81,11 @@ const _runBash = ({ command, args }) => {
8081
build.stderr.on('data', (d) => {
8182
error += d.toString();
8283
});
83-
build.on('close', () => {
84-
return resolve({ data, error });
84+
build.on('close', (code) => {
85+
if (code) {
86+
error += `Exit with code ${code}`
87+
}
88+
return resolve({ data, error, code });
8589
});
8690
build.on('error', (err) => {
8791
return reject(err);
@@ -180,7 +184,7 @@ const _buildDocker = async ({ buildMode, docker, algorithmName, version, buildPa
180184

181185
const baseImage = path.join(pushRegistry, algorithmName);
182186
const algorithmImage = `${baseImage}:v${version}`;
183-
if (buildMode === 'kaniko'){
187+
if (buildMode === KANIKO) {
184188
const dockerCreds = _createDockerCredentials(docker.pull, docker.push);
185189
await fse.writeJson(path.join(tmpFolder, 'commands', 'config.json'), dockerCreds, { spaces: 2 });
186190
}
@@ -194,11 +198,15 @@ const _buildDocker = async ({ buildMode, docker, algorithmName, version, buildPa
194198
_argsHelper(args, "--dplu", docker.pull.user);
195199
_argsHelper(args, "--dplp", docker.pull.pass);
196200

201+
197202
// docker push
198203
_argsHelper(args, "--dphr", pushRegistry);
199204
_argsHelper(args, "--dphu", docker.push.user);
200205
_argsHelper(args, "--dphp", docker.push.pass);
201-
_argsHelper(args, "--tmpFolder", tmpFolder);
206+
207+
if (buildMode === KANIKO) {
208+
_argsHelper(args, "--tmpFolder", tmpFolder);
209+
}
202210

203211
const output = await _runBash({ command: `${process.cwd()}/lib/builds/build-algorithm-image-${buildMode}.sh`, args });
204212
return { output, algorithmImage };
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module.exports = {
2+
KANIKO: 'kaniko',
3+
DOCKER: 'docker'
4+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
module.exports = {
2+
parseBool(value, defaultValue) {
3+
if (typeof value === 'boolean') {
4+
return value;
5+
}
6+
if (typeof value === 'string') {
7+
return value.toLowerCase() === 'true';
8+
}
9+
return defaultValue || false;
10+
},
11+
parseInt(value, defaultValue) {
12+
if (typeof value === 'number') {
13+
return value;
14+
}
15+
if (typeof value === 'string') {
16+
try {
17+
return parseInt(value, 10);
18+
}
19+
catch (error) {
20+
return defaultValue;
21+
}
22+
}
23+
return defaultValue;
24+
}
25+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const { expect } = require('chai');
2+
const { parseBool } = require('../lib/utils/formatters');
3+
describe('formatter', () => {
4+
it('check parse bool', () => {
5+
expect(parseBool(undefined)).to.be.false;
6+
expect(parseBool(undefined,true)).to.be.true;
7+
expect(parseBool('true',true)).to.be.true;
8+
expect(parseBool('true',false)).to.be.true;
9+
expect(parseBool('false',true)).to.be.false;
10+
expect(parseBool('false',false)).to.be.false;
11+
expect(parseBool("True")).to.be.true;
12+
});
13+
});

0 commit comments

Comments
 (0)