Helm Chart Collater image build with Proxy Fix
This patchset fixes the issue where Helm Chart Collator image build was failing with USE_PROXY=true. Issue #7 Change-Id: I3db9adabbde69880b56d1b398901cdf684ea75c8
This commit is contained in:
parent
2a70f431cc
commit
ab26e04ae1
@ -14,15 +14,20 @@ RUN apt-get update && \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
jq \
|
jq \
|
||||||
git && \
|
git && \
|
||||||
pip3 install --upgrade wheel && \
|
pip3 install --upgrade wheel --trusted-host pypi.org \
|
||||||
pip3 install --upgrade ansible && \
|
--trusted-host files.pythonhosted.org && \
|
||||||
pip3 install --upgrade jmespath && \
|
pip3 install --upgrade ansible --trusted-host pypi.org \
|
||||||
pip3 install --upgrade yq && \
|
--trusted-host files.pythonhosted.org && \
|
||||||
|
pip3 install --upgrade jmespath --trusted-host pypi.org \
|
||||||
|
--trusted-host files.pythonhosted.org && \
|
||||||
|
pip3 install --upgrade yq --trusted-host pypi.org \
|
||||||
|
--trusted-host files.pythonhosted.org && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY playbooks /opt/playbooks
|
COPY playbooks /opt/playbooks
|
||||||
|
COPY config /opt/config
|
||||||
|
|
||||||
ARG CHARTS=""
|
ARG CHARTS="/opt/config/charts.yaml"
|
||||||
RUN ansible-playbook -v /opt/playbooks/create_repository.yaml \
|
RUN ansible-playbook -v /opt/playbooks/create_repository.yaml \
|
||||||
-i /opt/playbooks/inventory.yaml \
|
-i /opt/playbooks/inventory.yaml \
|
||||||
--extra-vars "CHARTS=$CHARTS"
|
--extra-vars "CHARTS=$CHARTS"
|
||||||
|
@ -18,12 +18,13 @@ PUSH_IMAGE ?= false
|
|||||||
IMAGE_ID ?= none
|
IMAGE_ID ?= none
|
||||||
COMMIT ?= $(shell git rev-parse HEAD)
|
COMMIT ?= $(shell git rev-parse HEAD)
|
||||||
LABEL ?= org.airshipit.build=community
|
LABEL ?= org.airshipit.build=community
|
||||||
IMAGE_NAME ?= collator
|
IMAGE_NAME ?= helm-chart-collator
|
||||||
DOCKER_REGISTRY ?= quay.io
|
DOCKER_REGISTRY ?= quay.io
|
||||||
IMAGE_PREFIX ?= airshipit
|
IMAGE_PREFIX ?= airshipit
|
||||||
IMAGE_TAG ?= latest
|
IMAGE_TAG ?= latest
|
||||||
DISTRO ?= debian_stable
|
DISTRO ?= debian_stable
|
||||||
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO}
|
CHARTS ?= \"$(cat "config/charts.yaml")\"
|
||||||
|
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
|
||||||
SH_TO_CHECK := $(wildcard files/*.sh )
|
SH_TO_CHECK := $(wildcard files/*.sh )
|
||||||
PROXY ?= http://proxy.foo.com:8000
|
PROXY ?= http://proxy.foo.com:8000
|
||||||
NO_PROXY ?= localhost,127.0.0.1,.svc.cluster.local
|
NO_PROXY ?= localhost,127.0.0.1,.svc.cluster.local
|
||||||
@ -74,31 +75,23 @@ build_collator:
|
|||||||
mkdir -p $(BUILD_DIR)
|
mkdir -p $(BUILD_DIR)
|
||||||
ifeq ($(IMAGE_ID), none)
|
ifeq ($(IMAGE_ID), none)
|
||||||
ifeq ($(USE_PROXY), true)
|
ifeq ($(USE_PROXY), true)
|
||||||
docker build . \
|
./build-image-make.sh \
|
||||||
--iidfile $(BUILD_DIR)/image_id \
|
config/charts.yaml \
|
||||||
--tag $(IMAGE) \
|
$(IMAGE_NAME) \
|
||||||
--label $(LABEL) \
|
$(IMAGE) \
|
||||||
--label "org.opencontainers.image.revision=$(COMMIT)" \
|
$(LABEL) \
|
||||||
--label "org.opencontainers.image.created=\
|
$(BUILD_DIR) \
|
||||||
$(shell date --rfc-3339=seconds --utc)" \
|
$(USE_PROXY) \
|
||||||
--label "org.opencontainers.image.title=$(IMAGE_NAME)" \
|
$(PROXY) \
|
||||||
--build-arg http_proxy=$(PROXY) \
|
$(NO_PROXY)
|
||||||
--build-arg https_proxy=$(PROXY) \
|
|
||||||
--build-arg HTTP_PROXY=$(PROXY) \
|
|
||||||
--build-arg HTTPS_PROXY=$(PROXY) \
|
|
||||||
--build-arg no_proxy=$(NO_PROXY) \
|
|
||||||
--build-arg NO_PROXY=$(NO_PROXY) \
|
|
||||||
--build-arg GIT_COMMIT=$(COMMIT)
|
|
||||||
else
|
else
|
||||||
docker build . \
|
./build-image-make.sh \
|
||||||
--iidfile $(BUILD_DIR)/image_id \
|
config/charts.yaml \
|
||||||
--tag $(IMAGE) \
|
$(IMAGE_NAME) \
|
||||||
--label $(LABEL) \
|
$(IMAGE) \
|
||||||
--label "org.opencontainers.image.revision=$(COMMIT)" \
|
$(LABEL) \
|
||||||
--label "org.opencontainers.image.created=\
|
$(BUILD_DIR) \
|
||||||
$(shell date --rfc-3339=seconds --utc)" \
|
$(USE_PROXY)
|
||||||
--label "org.opencontainers.image.title=$(IMAGE_NAME)" \
|
|
||||||
--build-arg GIT_COMMIT=$(COMMIT)
|
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
echo $(IMAGE_ID) > $(BUILD_DIR)/image_id
|
echo $(IMAGE_ID) > $(BUILD_DIR)/image_id
|
||||||
|
70
helm-chart-collator/build-image-make.sh
Executable file
70
helm-chart-collator/build-image-make.sh
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# set -xe
|
||||||
|
|
||||||
|
if [[ $# < 5 ]]; then
|
||||||
|
echo "usage:"
|
||||||
|
echo " $0 \\\n"
|
||||||
|
echo " <charts filename> \\\n"
|
||||||
|
echo " <image name> \\\n"
|
||||||
|
echo " <image uri> \\\n"
|
||||||
|
echo " <label> \\\n"
|
||||||
|
echo " <build dir> \\\n"
|
||||||
|
echo " <use proxy? true|false> \\\n"
|
||||||
|
echo " [<proxy> <no-proxy>] \\\n"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CHARTS=$1
|
||||||
|
IMAGE_NAME=$2
|
||||||
|
IMAGE_URI=$3
|
||||||
|
LABEL=$4
|
||||||
|
BUILD_DIR=$5
|
||||||
|
USE_PROXY=$6
|
||||||
|
COMMIT=$(git rev-parse HEAD)
|
||||||
|
|
||||||
|
echo "Building the Docker image = ${IMAGE_URI}"
|
||||||
|
echo " CHARTS=$CHARTS"
|
||||||
|
echo " IMAGE_NAME=$IMAGE_NAME"
|
||||||
|
echo " IMAGE_URI=$IMAGE_URI"
|
||||||
|
echo " LABEL=$LABEL"
|
||||||
|
echo " BUILD_DIR=$BUILD_DIR"
|
||||||
|
echo " COMMIT=$COMMIT"
|
||||||
|
echo " USE_PROXY=$USE_PROXY"
|
||||||
|
|
||||||
|
if [ $USE_PROXY == "true" ]; then
|
||||||
|
PROXY=$7
|
||||||
|
NO_PROXY=$8
|
||||||
|
|
||||||
|
echo "Building Docker image ${IMAGE_URI} with PROXY"
|
||||||
|
docker build . \
|
||||||
|
--iidfile ${BUILD_DIR}/image_id \
|
||||||
|
--tag ${IMAGE_URI} \
|
||||||
|
--label ${LABEL} \
|
||||||
|
--label "org.opencontainers.image.revision=${COMMIT}" \
|
||||||
|
--label "org.opencontainers.image.created=\
|
||||||
|
$(date --rfc-3339=seconds --utc)" \
|
||||||
|
--label "org.opencontainers.image.title=${IMAGE_NAME}" \
|
||||||
|
--force-rm=true \
|
||||||
|
--build-arg "CHARTS=\"$(cat "${CHARTS}")\"" \
|
||||||
|
--build-arg http_proxy=${PROXY} \
|
||||||
|
--build-arg https_proxy=${PROXY} \
|
||||||
|
--build-arg HTTP_PROXY=${PROXY} \
|
||||||
|
--build-arg HTTPS_PROXY=${PROXY} \
|
||||||
|
--build-arg no_proxy=${NO_PROXY} \
|
||||||
|
--build-arg NO_PROXY=${NO_PROXY} \
|
||||||
|
--build-arg GIT_COMMIT=${COMMIT}
|
||||||
|
else
|
||||||
|
echo "Building Docker image ${IMAGE_URI} without PROXY"
|
||||||
|
docker build . \
|
||||||
|
--iidfile ${BUILD_DIR}/image_id \
|
||||||
|
--tag ${IMAGE_URI} \
|
||||||
|
--label ${LABEL} \
|
||||||
|
--label "org.opencontainers.image.revision=${COMMIT}" \
|
||||||
|
--label "org.opencontainers.image.created=\
|
||||||
|
$(date --rfc-3339=seconds --utc)" \
|
||||||
|
--label "org.opencontainers.image.title=${IMAGE_NAME}" \
|
||||||
|
--force-rm=true \
|
||||||
|
--build-arg "CHARTS=\"$(cat "${CHARTS}")\"" \
|
||||||
|
--build-arg GIT_COMMIT=${COMMIT}
|
||||||
|
fi
|
@ -1,8 +1,17 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
if [[ $# != 1 ]]; then
|
if [[ $# != 1 ]]; then
|
||||||
printf "usage: ./%s <filename>\n" "$0"
|
printf "usage: $0 <filename>\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker build . -t helm-chart-collator --build-arg "CHARTS=\"$(cat "$1")\""
|
IMAGE_NAME="${IMAGE_NAME:-helm-chart-collator}"
|
||||||
|
DOCKER_REGISTRY="${DOCKER_REGISTRY:-quay.io}"
|
||||||
|
IMAGE_PREFIX="${IMAGE_PREFIX:-airshipit}"
|
||||||
|
IMAGE_TAG="${IMAGE_TAG:-latest}"
|
||||||
|
|
||||||
|
image=${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
|
||||||
|
echo "Building the ${image}"
|
||||||
|
docker build . -t $image --build-arg "CHARTS=\"$(cat "$1")\""
|
||||||
|
21
helm-chart-collator/config/charts.yaml
Normal file
21
helm-chart-collator/config/charts.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
git_repos:
|
||||||
|
- name: dex-aio
|
||||||
|
url: https://review.opendev.org/airship/charts
|
||||||
|
path: charts/dex-aio
|
||||||
|
refspec: refs/heads/master
|
||||||
|
chart_version: 1.0.0
|
||||||
|
- name: jarvis-project
|
||||||
|
url: https://review.opendev.org/airship/charts
|
||||||
|
path: charts/jarvis-project
|
||||||
|
refspec: refs/heads/master
|
||||||
|
chart_version: 1.0.0
|
||||||
|
- name: jarvis-system
|
||||||
|
url: https://review.opendev.org/airship/charts
|
||||||
|
path: charts/jarvis-system
|
||||||
|
refspec: refs/heads/master
|
||||||
|
chart_version: 1.0.0
|
||||||
|
- name: harbor
|
||||||
|
url: https://review.opendev.org/airship/charts
|
||||||
|
path: charts/harbor
|
||||||
|
refspec: refs/heads/master
|
||||||
|
chart_version: 1.0.0
|
Loading…
Reference in New Issue
Block a user