Allow Deckhand image to be built behind proxy

This patchset allows Deckhand image to be built behind proxy
by adding appropriate variables to Dockerfile and to the Ansible
build image script.

Change-Id: Idff4adb4762b8062072a2da066044ecd7782ed9d
This commit is contained in:
Felipe Monteiro 2018-06-07 17:36:35 +01:00
parent 0c1496145e
commit 2ea322822a
3 changed files with 64 additions and 2 deletions

View File

@ -18,6 +18,18 @@ ENV DEBIAN_FRONTEND noninteractive
ENV container docker
ENV PORT 9000
ARG HTTP_PROXY=""
ENV HTTP_PROXY ${HTTP_PROXY}
ENV http_proxy ${HTTP_PROXY}
ARG HTTPS_PROXY=""
ENV HTTPS_PROXY ${HTTPS_PROXY}
ENV https_proxy ${HTTPS_PROXY}
ARG NO_PROXY="127.0.0.1,localhost,.svc.cluster.local"
ENV NO_PROXY ${NO_PROXY}
ENV no_proxy ${NO_PROXY}
# Expose port 9000 for application
EXPOSE $PORT

View File

@ -0,0 +1,18 @@
# Copyright 2018 AT&T Intellectual Property. All other rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
proxy:
http: null
https: null
noproxy: null

View File

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- name: set zuul_site_mirror_fqdn from env var if not defined
- name: Set zuul_site_mirror_fqdn from env var if not defined
when: zuul_site_mirror_fqdn is not defined
set_fact:
zuul_site_mirror_fqdn: "{{ lookup('env','zuul_site_mirror_fqdn') }}"
@ -29,7 +29,8 @@
vars:
work_dir: "{{ zuul.project.src_dir }}/{{ zuul_airship_deckhand_relative_path | default('') }}"
- name: Airship-Deckhand image build path
- name: Build Airship-Deckhand Image
when: proxy.http is undefined or (proxy.http | trim == "")
shell: |-
set -ex;
docker build \
@ -47,11 +48,42 @@
args:
chdir: "{{ airship_deckhand_path.stdout }}"
executable: /bin/bash
register: result
failed_when: "'permission denied' in result.stdout"
become: yes
- name: Build Airship-Deckhand Image Behind Proxy
when: proxy.http is defined and (proxy.http | trim != "")
shell: |-
set -ex;
docker build \
--network host \
--force-rm \
--label zuul \
--file images/deckhand/Dockerfile \
--build-arg HTTP_PROXY="{{ proxy.http }}" \
--build-arg HTTPS_PROXY="{{ proxy.https }}" \
--build-arg NO_PROXY="{{ proxy.noproxy }}" \
{% if zuul_site_mirror_fqdn is defined and zuul_site_mirror_fqdn %}
--build-arg UBUNTU_URL="http://{{ zuul_site_mirror_fqdn }}/ubuntu/" \
--build-arg ALLOW_UNAUTHENTICATED="true" \
--build-arg PIP_INDEX_URL="http://{{ zuul_site_mirror_fqdn }}/pypi/simple" \
--build-arg PIP_TRUSTED_HOST="{{ zuul_site_mirror_fqdn }}" \
{% endif %}
.
args:
chdir: "{{ airship_deckhand_path.stdout }}"
executable: /bin/bash
register: result
failed_when: "'permission denied' in result.stdout"
become: yes
- name: Register Deckhand Image ID
shell: |-
set -e;
echo $( docker images --filter label=zuul | awk '{print $3}' | head -2 | tail -1 )
register: airship_deckhand_image_id
failed_when: "'permission denied' in airship_deckhand_image_id.stdout"
args:
chdir: "{{ airship_deckhand_path.stdout }}"
become: yes