Skip to content

Commit e7a6b6c

Browse files
authored
Base Image Change (#190)
* base image updated Signed-off-by: Aayush Subramaniam <[email protected]> * base image updated Signed-off-by: Aayush Subramaniam <[email protected]> * makefile updated Signed-off-by: Aayush Subramaniam <[email protected]> * dockerfile and makefile updated Signed-off-by: Aayush Subramaniam <[email protected]> * old make builds added back Signed-off-by: Aayush Subramaniam <[email protected]> --------- Signed-off-by: Aayush Subramaniam <[email protected]>
1 parent 2fe02d0 commit e7a6b6c

File tree

4 files changed

+112
-10
lines changed

4 files changed

+112
-10
lines changed

block-storage-attacher/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ ADD block-storage-attacher /home/armada-storage
3434
RUN chmod +x /home/armada-storage/block-storage-attacher
3535

3636
CMD ./home/armada-storage/run.sh
37-
#ENTRYPOINT ["/home/armada-storage/block-storage-attacher"]
37+
#ENTRYPOINT ["/home/armada-storage/block-storage-attacher"]
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
ARG BUILDER
2+
3+
FROM $BUILDER as builder
4+
5+
WORKDIR /go/src/github.ibm.com/alchemy-containers/block-storage-attacher
6+
ADD . .
7+
8+
ARG GOPROXY=off
9+
ARG GOOS=linux
10+
ARG GOARCH=amd64
11+
12+
# GOPRIVATE is set by the base image, but needs to be unset for `bt build image` to work with the `-goproxy` flag
13+
ENV GOPRIVATE=
14+
RUN make buildgo
15+
RUN make buildbsa
16+
RUN make buildsu
17+
RUN validate-go-binary armada-block-storage-attacher
18+
19+
RUN install-packages nfs-utils \
20+
libgcrypt \
21+
curl nc jq
22+
23+
RUN extend-image /usr/bin/mount* \
24+
/usr/sbin/mount* \
25+
/usr/lib64/libgcrypt* \
26+
/usr/bin/bash /usr/bin/ls /usr/bin/curl /usr/bin/jq /usr/bin/nc /usr/bin/mkdir
27+
28+
RUN mkdir -p /image/home/armada-storage/
29+
RUN mkdir -p /image/host && \
30+
cp /go/bin/systemutil /image/home/armada-storage && \
31+
cp block-storage-attacher /image/home/armada-storage
32+
ADD images/iscsi-attach.sh /image/home/armada-storage
33+
ADD images/iscsi-block-volume.conf /image/home/armada-storage
34+
ADD images/ibmc-block-attacher.service /image/home/armada-storage
35+
ADD images/run.sh /image/home/armada-storage
36+
RUN chmod 775 /image/home/armada-storage/systemutil
37+
RUN chmod 775 /image/home/armada-storage/run.sh
38+
RUN chmod 775 /image/home/armada-storage/iscsi-attach.sh
39+
RUN chmod +x /image/home/armada-storage/block-storage-attacher
40+
41+
FROM scratch
42+
# Default values
43+
ARG git_commit_id=unknown
44+
ARG git_remote_url=unknown
45+
ARG build_date=unknown
46+
#ARG jenkins_build_number=unknown
47+
ARG travis_build_number=unknown
48+
ARG REPO_SOURCE_URL=blank
49+
LABEL razee.io/source-url="${REPO_SOURCE_URL}"
50+
ARG BUILD_URL=blank
51+
LABEL razee.io/build-url="${BUILD_URL}"
52+
LABEL compliance.owner="ibm-armada-storage"
53+
54+
# Add Labels to image to show build details
55+
LABEL git-commit-id=${git_commit_id}
56+
LABEL git-remote-url=${git_remote_url}
57+
LABEL build-date=${build_date}
58+
#LABEL jenkins-build-number=${jenkins_build_number}
59+
LABEL travis_build_number=${travis_build_number}
60+
61+
COPY --from=builder --chown=2000 /image /
62+
63+
WORKDIR /home/armada-storage/
64+
65+
USER 2000:2000
66+
67+
CMD ./home/armada-storage/run.sh
68+
#ENTRYPOINT ["/home/armada-storage/block-storage-attacher"]

block-storage-attacher/Makefile

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ PROXY_IMAGE_URL_DOCKERHUB="docker-na.artifactory.swg-devops.com/wcp-alchemy-cont
2525
endif
2626

2727
.PHONY: all
28-
all: deps gosec fmt vet buildgo test buildimage
28+
all: deps gosec fmt vet buildgo test buildimage-fips
2929

3030
install-bt: ## Install 'bt' via git clone + installer script. Set BT_VERSION to install a custom version.
3131
@V=$${BT_VERSION:-master} C=~/.cache/bt/repo && if ! git -C "$$C" status >/dev/null; then mkdir -p "$$C" && rm -rf "$$C" && git clone https://github.ibm.com/alchemy-containers/go-build-tools.git "$$C"; fi && pushd "$$C" && git fetch && { git reset --hard "$$V" || git reset --hard origin/"$$V"; } && popd && "$$C"/scripts/install.sh "$$V"
3232

3333
.PHONY: driver
34-
driver: deps gosec buildimage
34+
driver: deps gosec buildimage-fips
3535

3636
.PHONY: deps
3737
deps: install-bt
@@ -56,7 +56,16 @@ gosec:
5656

5757
.PHONY: buildgo
5858
buildgo:
59-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
59+
GOOS=linux GOARCH=amd64 go build ${GOTAGS}
60+
61+
.PHONY: buildbsa
62+
buildbsa:
63+
set -ex; go build ${GOTAGS} -v github.com/IBM/ibmcloud-storage-utilities/block-storage-attacher
64+
65+
.PHONY: buildsu
66+
buildsu:
67+
set -ex; go build ${GOTAGS} -o /go/bin/systemutil utils/systemutil.go
68+
chmod 755 /go/bin/systemutil
6069

6170
.PHONY: test
6271
test:
@@ -66,6 +75,28 @@ test:
6675
coverage:
6776
go tool cover -html=cover.out -o=cover.html
6877

78+
.PHONY: buildimage-fips
79+
buildimage-fips: login-registry deps
80+
@ set -x; \
81+
ASSETURL="$$(curl -X GET -H "Authorization: token ${GHE_TOKEN}" "https://github.ibm.com/api/v3/repos/alchemy-registry/base/releases/latest" | jq -r '.assets[0].url')"; \
82+
curl -H "Authorization: token ${GHE_TOKEN}" -H "Accept: application/octet-stream" -L $$ASSETURL > base.image
83+
set -a
84+
source base.image && \
85+
IMAGE_TAG="$$(echo $$COMMON_ARMADA_golang_builder | cut -d':' -f2)" && \
86+
BUILDER="${PROXY_IMAGE_URL}/armada-master/ibm-storage-golang:$$IMAGE_TAG" && \
87+
bt build image -goproxy -- docker build --rm \
88+
--build-arg git_commit_id=${GIT_COMMIT_SHA} \
89+
--build-arg git_remote_url=${GIT_REMOTE_URL} \
90+
--build-arg build_date=${BUILD_DATE} \
91+
--build-arg travis_build_number=${TRAVIS_BUILD_NUMBER} \
92+
--build-arg REPO_SOURCE_URL=${REPO_SOURCE_URL} \
93+
--build-arg BUILD_URL="${BUILD_URL}" \
94+
--build-arg IMAGE_TAG=$$IMAGE_TAG \
95+
--build-arg BUILDER=$$BUILDER \
96+
--build-arg GOOS="linux" \
97+
--build-arg GOARCH="amd64" \
98+
-t $(IMAGE):$(TRAVIS_COMMIT) -f Dockerfile.fips .
99+
set +a
69100

70101
.PHONY: buildimage
71102
buildimage: build-systemutil
@@ -79,7 +110,6 @@ buildimage: build-systemutil
79110
--build-arg BUILD_URL=${BUILD_URL} \
80111
-t $(IMAGE):$(VERSION) -f Dockerfile .
81112

82-
83113
.PHONY: build-systemutil
84114
build-systemutil:
85115
#Build executables like block-attacher and system util GO binaries
@@ -118,3 +148,7 @@ oss:
118148
bt lint golangci --version="v${LINT_VERSION}" -- --fix
119149
bt lint opensource -generate ${OSS_FILES}
120150
bt lint copyright -generate
151+
152+
.PHONY: login-registry
153+
login-registry: install-bt
154+
bt build login-registry -artifactory-username "${ARTIFACTORY_USER}" -all-artifactory -iam-key "${registry_iam_api_key}" -all-icr

block-storage-attacher/OPENSOURCE

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
docker://docker-na.artifactory.swg-devops.com/wcp-alchemy-containers-team-access-redhat-docker-remote/ubi8/ubi-minimal,8.9-1108
1+
docker://hub.docker.com/r/scratch,latest
22
github.com/BurntSushi/toml,v0.3.1,direct
33
github.com/coreos/go-systemd/v22,v22.2.0,direct
44
github.com/gofrs/uuid,v4.2.0+incompatible,direct
5-
github.com/stretchr/testify,v1.7.0,direct
6-
go.uber.org/zap,v1.16.0,direct
5+
github.com/stretchr/testify,v1.8.4,direct
6+
go.uber.org/zap,v1.26.0,direct
77
golang.org/x/time,v0.0.0-20210220033141-f8bda1e9f3ba,direct
88
k8s.io/api,v0.19.2,direct
99
k8s.io/apimachinery,v0.19.2,direct
@@ -28,7 +28,7 @@ github.com/pkg/errors,v0.9.1,indirect
2828
github.com/pmezard/go-difflib,v1.0.0,indirect
2929
github.com/spf13/pflag,v1.0.5,indirect
3030
go.uber.org/atomic,v1.7.0,indirect
31-
go.uber.org/multierr,v1.6.0,indirect
31+
go.uber.org/multierr,v1.10.0,indirect
3232
golang.org/x/crypto,v0.0.0-20211202192323-5770296d904e,indirect
3333
golang.org/x/lint,v0.0.0-20201208152925-83fdc39ff7b5,indirect
3434
golang.org/x/net,v0.0.0-20220722155237-a158d28d115b,indirect
@@ -46,4 +46,4 @@ k8s.io/klog/v2,v2.8.0,indirect
4646
k8s.io/kube-openapi,v0.0.0-20200805222855-6aeccd4b50c6,indirect
4747
k8s.io/utils,v0.0.0-20210305010621-2afb4311ab10,indirect
4848
sigs.k8s.io/structured-merge-diff/v4,v4.1.0,indirect
49-
sigs.k8s.io/yaml,v1.2.0,indirect
49+
sigs.k8s.io/yaml,v1.2.0,indirect

0 commit comments

Comments
 (0)