Skip to content
This repository was archived by the owner on Feb 10, 2022. It is now read-only.

Commit 2bf7b28

Browse files
authored
Merge pull request #145 from cloudfoundry-incubator/docker_ca_cert
Alana would like to pass a CA certs as a job property to the docker-boshrelease
2 parents f1871e8 + e14d079 commit 2bf7b28

File tree

780 files changed

+315
-29156
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

780 files changed

+315
-29156
lines changed

jobs/docker/spec

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ packages:
55
- bosh-helpers
66
- docker
77
- ctop
8+
- docker-registry-certs
89

910
templates:
1011
bin/cgroupfs-mount: bin/cgroupfs-mount
@@ -15,6 +16,7 @@ templates:
1516
config/docker.cacert.erb: config/docker.cacert
1617
config/docker.cert.erb: config/docker.cert
1718
config/docker.key.erb: config/docker.key
19+
config/docker_registry_certs.erb: config/docker_registry_certs
1820

1921
provides:
2022
- name: docker
@@ -123,7 +125,22 @@ properties:
123125
description: "Enable flannel support"
124126
default: false
125127

126-
128+
registry_ca_cert:
129+
description: |
130+
Array of domain names and certificates used to securely communicate with a private docker registry
131+
example:
132+
registry_ca_cert:
133+
- domain_name: |
134+
"mydockerregistrydomain.com"
135+
ca_cert: |
136+
-----BEGIN CERTIFICATE-----
137+
-----END CERTIFICATE-----
138+
- domain_name: |
139+
"mydockerregistrydomain2.com"
140+
ca_cert: |
141+
-----BEGIN CERTIFICATE-----
142+
-----END CERTIFICATE-----
143+
default: []
127144
env.http_proxy:
128145
description: "HTTP proxy that Docker should use"
129146
env.https_proxy:

jobs/docker/templates/bin/ctl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ case $1 in
5151
# Enable shared_mounts
5252
[ "${DOCKER_SHARED_MOUNTS_ENABLE}" = "true" ] && mount --make-shared /
5353

54+
# Create certs for private docker registry
55+
/var/vcap/packages/docker-registry-certs/bin/generate_certs ${JOB_DIR}/config/docker_registry_certs
56+
5457
# Start Docker daemon
5558
exec dockerd \
5659
${DOCKER_BRIDGE:-} \
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<%
2+
if_p("registry_ca_cert") do |registry_ca_cert|
3+
if !registry_ca_cert.is_a?(Array)
4+
registry_ca_cert = [registry_ca_cert]
5+
end
6+
7+
registry_ca_cert.each_with_index do |registry_cert, i|
8+
ca_cert = registry_cert['ca_cert'].strip
9+
domain_name = registry_cert['domain_name'].strip
10+
%>
11+
<%= domain_name %>
12+
<%= ca_cert %>
13+
14+
*#*#*#*#*#*#*#*#*#*#*#*#*#*#
15+
<%
16+
end
17+
end
18+
%>

jobs/sanity-tests/templates/bin/run

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ export DOCKER_CERT_PATH="/var/vcap/jobs/sanity-tests/config"
1515
export GOPATH=/var/vcap/packages/sanity-tests/
1616

1717
echo "Running sanity tests..."
18-
pushd /var/vcap/packages/sanity-tests/src/tests
19-
go test -v tests/cli
18+
pushd /var/vcap/packages/sanity-tests/src/go-src/tests
19+
go test -v go-src/tests/cli
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
set -eux
2+
3+
source /var/vcap/packages/golang-1.12-linux/bosh/compile.env
4+
5+
mkdir -p ${BOSH_COMPILE_TARGET}/src/go-src
6+
mv ${BOSH_COMPILE_TARGET}/go-src/docker-registry-certs ${BOSH_COMPILE_TARGET}/src/go-src/docker-registry-certs
7+
mv ${BOSH_COMPILE_TARGET}/go-src/vendor ${BOSH_COMPILE_TARGET}/src/go-src/vendor
8+
9+
export GOPATH=${BOSH_COMPILE_TARGET}
10+
11+
pushd ${BOSH_COMPILE_TARGET}/src/go-src/docker-registry-certs
12+
13+
# Create the executable file
14+
mkdir -p ${BOSH_INSTALL_TARGET}/bin
15+
go build -o ${BOSH_INSTALL_TARGET}/bin/generate_certs ${BOSH_COMPILE_TARGET}/src/go-src/docker-registry-certs/main.go
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
name: docker-registry-certs
3+
dependencies:
4+
- golang-1.12-linux
5+
files:
6+
- go-src/docker-registry-certs/**/*
7+
- go-src/vendor/**/*

packages/sanity-tests/packaging

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ set -eux
22

33
source /var/vcap/packages/golang-1.12-linux/bosh/compile.env
44

5-
mkdir -p ${BOSH_INSTALL_TARGET}/src/tests
6-
cp -a ${BOSH_COMPILE_TARGET}/tests/* ${BOSH_INSTALL_TARGET}/src/tests
5+
mkdir -p ${BOSH_INSTALL_TARGET}/src/go-src/tests
6+
cp -a ${BOSH_COMPILE_TARGET}/go-src/tests/* ${BOSH_INSTALL_TARGET}/src/go-src/tests
7+
8+
mkdir -p ${BOSH_INSTALL_TARGET}/src/go-src/vendor
9+
cp -a ${BOSH_COMPILE_TARGET}/go-src/vendor/* ${BOSH_INSTALL_TARGET}/src/go-src/vendor
10+
711
export GOPATH=${BOSH_INSTALL_TARGET}

packages/sanity-tests/spec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ name: sanity-tests
33
dependencies:
44
- golang-1.12-linux
55
files:
6-
- tests/**/*
6+
- go-src/tests/**/*
7+
- go-src/vendor/**/*
Lines changed: 22 additions & 95 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)