Skip to content

Commit 82574fc

Browse files
author
Leonardo Lorieri
committed
feat(builder): add proxy support
Proxy support for builder and coreos' docker daemon Non-cloud installations may require http proxy, this commit creates empty values for those settings
1 parent 5f6ce0b commit 82574fc

8 files changed

Lines changed: 37 additions & 3 deletions

File tree

builder/image/bin/boot

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
# fail hard and fast even on pipelines
77
set -eo pipefail
88

9+
source /etc/environment_proxy
10+
911
# set debug based on envvar
1012
[[ $DEBUG ]] && set -x
1113

builder/image/bin/entry

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/bin/bash
22
set -eo pipefail
33

4+
source /etc/environment_proxy
5+
46
# START jpetazzo/dind wrapper
57

68
# First, make sure that cgroups are mounted correctly.

builder/image/slugbuilder/builder/build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/bin/bash
22
set -eo pipefail
33

4+
source /etc/environment_proxy
45

56
if [[ "$1" == "-" ]]; then
67
slug_file="$1"

builder/image/slugrunner/runner/init

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/bin/bash
22
set -eo pipefail
33

4+
source /etc/environment_proxy
5+
46
## Load slug from Bind Mount, URL or STDIN
57

68
export HOME=/app

builder/image/templates/builder

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ fi
8787

8888
BUILD_OPTS=()
8989
BUILD_OPTS+='/usr/bin/docker'
90-
BUILD_OPTS+=' run '
90+
BUILD_OPTS+=' run -v /etc/environment_proxy:/etc/environment_proxy'
9191
# get application configuration
9292
BUILD_OPTS+=$(echo $RESPONSE | /app/bin/get-app-values)
9393

builder/tests/builder_test.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,14 @@ import (
88
"github.com/deis/deis/tests/dockercli"
99
"github.com/deis/deis/tests/etcdutils"
1010
"github.com/deis/deis/tests/utils"
11+
12+
"io/ioutil"
13+
"os"
1114
)
1215

1316
func TestBuilder(t *testing.T) {
1417
var err error
18+
var errfile error
1519
setkeys := []string{
1620
"/deis/registry/protocol",
1721
"/deis/registry/host",
@@ -31,6 +35,15 @@ func TestBuilder(t *testing.T) {
3135
"/deis/domains",
3236
"/deis/services",
3337
}
38+
setproxy := []byte("HTTP_PROXY=\nhttp_proxy=\n")
39+
40+
tmpfile, errfile := ioutil.TempFile("/tmp", "deis-test-")
41+
if errfile != nil {
42+
t.Fatal(errfile)
43+
}
44+
ioutil.WriteFile(tmpfile.Name(), setproxy, 0644)
45+
defer os.Remove(tmpfile.Name())
46+
3447
tag, etcdPort := utils.BuildTag(), utils.RandomPort()
3548
etcdName := "deis-etcd-" + tag
3649
cli, stdout, stdoutPipe := dockercli.NewClient()
@@ -52,7 +65,9 @@ func TestBuilder(t *testing.T) {
5265
"-e", "HOST="+host,
5366
"-e", "ETCD_PORT="+etcdPort,
5467
"-e", "EXTERNAL_PORT="+port,
55-
"--privileged", "deis/builder:"+tag)
68+
"--privileged",
69+
"-v", tmpfile.Name()+":/etc/environment_proxy",
70+
"deis/builder:"+tag)
5671
}()
5772
dockercli.PrintToStdout(t, stdout, stdoutPipe, "deis-builder running")
5873
if err != nil {

contrib/coreos/user-data.example

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ write_files:
8989
- path: /etc/systemd/system/docker.service.d/50-insecure-registry.conf
9090
content: |
9191
[Service]
92+
EnvironmentFile=/etc/environment_proxy
9293
Environment="DOCKER_OPTS=--insecure-registry 10.0.0.0/8 --insecure-registry 172.16.0.0/12 --insecure-registry 192.168.0.0/16 --insecure-registry 100.64.0.0/10"
9394
- path: /run/deis/bin/get_image
9495
permissions: '0755'
@@ -141,3 +142,14 @@ write_files:
141142
TOOLBOX_DOCKER_IMAGE=ubuntu-debootstrap
142143
TOOLBOX_DOCKER_TAG=14.04
143144
TOOLBOX_USER=root
145+
- path: /etc/environment_proxy
146+
owner: core
147+
content: |
148+
HTTP_PROXY=
149+
HTTPS_PROXY=
150+
ALL_PROXY=
151+
NO_PROXY=
152+
http_proxy=
153+
https_proxy=
154+
all_proxy=
155+
no_proxy=

deisctl/units/deis-builder.service

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ExecStartPre=/bin/sh -c "docker inspect deis-builder-data >/dev/null 2>&1 || doc
88
ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/builder` && docker history $IMAGE >/dev/null || docker pull $IMAGE"
99
ExecStartPre=/bin/sh -c "docker inspect deis-builder >/dev/null && docker rm -f deis-builder || true"
1010
ExecStartPre=-/bin/sh -c "/sbin/losetup -f"
11-
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/builder` && docker run --name deis-builder --rm -p 2223:22 --volumes-from=deis-builder-data -c 800 -e EXTERNAL_PORT=2223 -e HOST=$COREOS_PRIVATE_IPV4 --privileged $IMAGE"
11+
ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/builder` && docker run --name deis-builder --rm -p 2223:22 --volumes-from=deis-builder-data -c 800 -e EXTERNAL_PORT=2223 -e HOST=$COREOS_PRIVATE_IPV4 --privileged -v /etc/environment_proxy:/etc/environment_proxy $IMAGE"
1212
ExecStartPost=/bin/sh -c "echo 'Waiting for builder on 2223/tcp...' && until echo 'dummy-value' | ncat $COREOS_PRIVATE_IPV4 2223 >/dev/null 2>&1; do sleep 1; done"
1313
ExecStartPost=/usr/bin/docker exec deis-builder /usr/local/bin/push-images
1414
ExecStopPost=-/usr/bin/docker rm -f deis-builder

0 commit comments

Comments
 (0)