3939 bosh int ./certs.yml --path=/client_docker_tls/private_key > ./key.pem
4040 # generate certs in json format
4141 #
42- ruby -e ' puts File.read("./ca.pem").split("\n").join("\\n")' > $ certs_dir /ca_json_safe.pem
43- ruby -e ' puts File.read("./cert.pem").split("\n").join("\\n")' > $ certs_dir /client_certificate_json_safe.pem
44- ruby -e ' puts File.read("./key.pem").split("\n").join("\\n")' > $ certs_dir /client_private_key_json_safe.pem
42+ ruby -e ' puts File.read("./ca.pem").split("\n").join("\\n")' > " ${ certs_dir} /ca_json_safe.pem"
43+ ruby -e ' puts File.read("./cert.pem").split("\n").join("\\n")' > " ${ certs_dir} /client_certificate_json_safe.pem"
44+ ruby -e ' puts File.read("./key.pem").split("\n").join("\\n")' > " ${ certs_dir} /client_private_key_json_safe.pem"
4545 popd > /dev/null
4646}
4747
@@ -52,13 +52,14 @@ function sanitize_cgroups() {
5252
5353 mount -o remount,rw /sys/fs/cgroup
5454
55+ # shellcheck disable=SC2034
5556 sed -e 1d /proc/cgroups | while read sys hierarchy num enabled; do
5657 if [ " $enabled " != " 1" ]; then
5758 # subsystem disabled; skip
5859 continue
5960 fi
6061
61- grouping=" $( cat /proc/self/cgroup | cut -d: -f2 | grep " \\ <$sys \\ >" ) "
62+ grouping=" $( cut -d: -f2 < /proc/self/cgroup | grep " \\ <$sys \\ >" ) "
6263 if [ -z " $grouping " ]; then
6364 # subsystem not mounted anywhere; mount it on its own
6465 grouping=" $sys "
133134
134135 service docker start
135136
136- export DOCKER_TLS_VERIFY=1
137- export DOCKER_CERT_PATH=" ${certs_dir} "
138-
139137 rc=1
140138 for i in $( seq 1 100) ; do
141139 echo " waiting for docker to come up... (${i} )"
@@ -171,10 +169,20 @@ function main() {
171169 exit 1
172170 fi
173171
174- export DOCKER_HOST=" tcp://${OUTER_CONTAINER_IP} :4243"
175-
176172 local certs_dir
177173 certs_dir=$( mktemp -d)
174+
175+ export DOCKER_HOST=" tcp://${OUTER_CONTAINER_IP} :4243"
176+ export DOCKER_TLS_VERIFY=1
177+ export DOCKER_CERT_PATH=" ${certs_dir} "
178+ cat << EOF > "${local_bosh_dir} /docker-env"
179+ export DOCKER_HOST="tcp://${OUTER_CONTAINER_IP} :4243"
180+ export DOCKER_TLS_VERIFY=1
181+ export DOCKER_CERT_PATH="${certs_dir} "
182+
183+ EOF
184+ echo " Source '${local_bosh_dir} /docker-env' to run docker" >&2
185+
178186 start_docker " ${certs_dir} "
179187
180188 local local_bosh_dir
@@ -193,46 +201,51 @@ function main() {
193201
194202 mkdir -p ${local_bosh_dir}
195203
196- additional_ops_files=" "
197- if [ " $( lsb_release -cs) " != " jammy" ]; then
198- additional_ops_files=" -o /usr/local/noble-updates.yml"
199- fi
204+ cat << EOF > "${local_bosh_dir} /docker_tls.json"
205+ {
206+ "ca": "$( cat " ${certs_dir} /ca_json_safe.pem" ) ",
207+ "certificate": "$( cat " ${certs_dir} /client_certificate_json_safe.pem" ) ",
208+ "private_key": "$( cat " ${certs_dir} /client_private_key_json_safe.pem" ) "
209+ }
210+
211+ EOF
200212
201- command bosh int bosh.yml \
213+ bosh int bosh.yml \
202214 -o docker/cpi.yml \
203215 -o jumpbox-user.yml \
204216 -o /usr/local/local-releases.yml \
205- ${additional_ops_files} \
206217 -v director_name=docker \
207218 -v internal_cidr=10.245.0.0/16 \
208219 -v internal_gw=10.245.0.1 \
209220 -v internal_ip=" ${BOSH_DIRECTOR_IP} " \
210221 -v docker_host=" ${DOCKER_HOST} " \
211- -v network=director_network \
212- -v docker_tls=" {\" ca\" : \" $( cat " ${certs_dir} /ca_json_safe.pem" ) \" ,\" certificate\" : \" $( cat " ${certs_dir} /client_certificate_json_safe.pem" ) \" ,\" private_key\" : \" $( cat " ${certs_dir} /client_private_key_json_safe.pem" ) \" }" \
213- ${@ } > " ${local_bosh_dir} /bosh-director.yml"
214-
215- command bosh create-env " ${local_bosh_dir} /bosh-director.yml" \
216- --vars-store=" ${local_bosh_dir} /creds.yml" \
217- --state=" ${local_bosh_dir} /state.json"
222+ -v network=" ${docker_network_name} " \
223+ -v docker_tls=" $( cat " ${local_bosh_dir} /docker_tls.json" ) " \
224+ " ${@ } " > " ${local_bosh_dir} /bosh-director.yml"
218225
219- bosh int " ${local_bosh_dir} /creds.yml" --path /director_ssl/ca > " ${local_bosh_dir} /ca.crt"
220- bosh -e " ${BOSH_DIRECTOR_IP} " --ca-cert " ${local_bosh_dir} /ca.crt" alias-env " ${BOSH_ENVIRONMENT} "
226+ bosh create-env " ${local_bosh_dir} /bosh-director.yml" \
227+ --vars-store=" ${local_bosh_dir} /creds.yml" \
228+ --state=" ${local_bosh_dir} /state.json"
221229
230+ bosh int " ${local_bosh_dir} /creds.yml" --path /director_ssl/ca \
231+ > " ${local_bosh_dir} /ca.crt"
222232 bosh_client_secret=" $( bosh int " ${local_bosh_dir} /creds.yml" --path /admin_password) "
223233
234+ bosh -e " ${BOSH_DIRECTOR_IP} " --ca-cert " ${local_bosh_dir} /ca.crt" alias-env " ${BOSH_ENVIRONMENT} "
235+
224236 cat << EOF > "${local_bosh_dir} /env"
225237 export BOSH_ENVIRONMENT="${BOSH_ENVIRONMENT} "
226238 export BOSH_CLIENT=admin
227239 export BOSH_CLIENT_SECRET=${bosh_client_secret}
228240 export BOSH_CA_CERT="${local_bosh_dir} /ca.crt"
229241
230242EOF
243+ echo " Source '${local_bosh_dir} /env' to run bosh" >&2
231244 source " ${local_bosh_dir} /env"
232245
233- bosh -n update-cloud-config docker/cloud-config.yml -v network=director_network
246+ bosh -n update-cloud-config docker/cloud-config.yml -v network=" ${docker_network_name} "
234247
235248 popd > /dev/null
236249}
237250
238- main ${@ }
251+ main " ${@ } "
0 commit comments