Skip to content

Commit 8c62a48

Browse files
committed
feat(integration): separate base build and kubectl trace image
Signed-off-by: Lorenzo Fontana <[email protected]>
1 parent 5aad5f7 commit 8c62a48

File tree

5 files changed

+76
-62
lines changed

5 files changed

+76
-62
lines changed

Dockerfile.bpftrace

-52
This file was deleted.

Dockerfile.bpftracebase

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
ARG bpftracesha
2+
3+
FROM alpine:3.8 as builder
4+
ENV STATIC_LINKING=ON
5+
ENV RUN_TESTS=0
6+
RUN apk add --update \
7+
bison \
8+
build-base \
9+
clang-dev \
10+
clang-static \
11+
cmake \
12+
elfutils-dev \
13+
flex-dev \
14+
git \
15+
linux-headers \
16+
llvm5-dev \
17+
llvm5-static \
18+
zlib-dev
19+
20+
# Put LLVM directories where CMake expects them to be
21+
RUN ln -s /usr/lib/cmake/llvm5 /usr/lib/cmake/llvm
22+
RUN ln -s /usr/include/llvm5/llvm /usr/include/llvm
23+
RUN ln -s /usr/include/llvm5/llvm-c /usr/include/llvm-c
24+
25+
WORKDIR /
26+
27+
RUN git clone https://github.com/iovisor/bpftrace.git /bpftrace
28+
29+
WORKDIR /bpftrace
30+
31+
#RUN git checkout ${bpftracesha}
32+
33+
WORKDIR /bpftrace/docker
34+
35+
RUN sh build.sh /bpftrace/build-release Release

Dockerfile.tracerunner

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
ARG bpftracesha
2+
3+
FROM quay.io/fntlnz/kubectl-trace-bpftrace-base:${bpftracesha} as bpftrace
4+
FROM golang:1.11.4-alpine3.8 as gobuilder
5+
6+
RUN apk update
7+
RUN apk add make bash git
8+
9+
ADD . /go/src/github.com/iovisor/kubectl-trace
10+
WORKDIR /go/src/github.com/iovisor/kubectl-trace
11+
12+
RUN make _output/bin/trace-runner
13+
14+
FROM alpine:3.8
15+
16+
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
17+
COPY --from=bpftrace /bpftrace/build-release/src/bpftrace /bin/bpftrace
18+
COPY --from=gobuilder /go/src/github.com/iovisor/kubectl-trace/_output/bin/trace-runner /bin/trace-runner
19+
20+
ENTRYPOINT ["/bin/trace-runner"]
21+

Makefile

+19-9
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@ GIT_COMMIT := $(if $(shell git status --porcelain --untracked-files=no),${COMMIT
88
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
99
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
1010

11-
IMAGE_BPFTRACE_BRANCH := quay.io/fntlnz/kubectl-trace-bpftrace:$(GIT_BRANCH_CLEAN)
12-
IMAGE_BPFTRACE_COMMIT := quay.io/fntlnz/kubectl-trace-bpftrace:$(GIT_COMMIT)
13-
IMAGE_BPFTRACE_LATEST := quay.io/fntlnz/kubectl-trace-bpftrace:latest
11+
IMAGE_TRACERUNNER_BRANCH := quay.io/fntlnz/kubectl-trace-bpftrace:$(GIT_BRANCH_CLEAN)
12+
IMAGE_TRACERUNNER_COMMIT := quay.io/fntlnz/kubectl-trace-bpftrace:$(GIT_COMMIT)
13+
IMAGE_TRACERUNNER_LATEST := quay.io/fntlnz/kubectl-trace-bpftrace:latest
14+
15+
BPFTRACESHA ?= 2ae2a53f62622631a304def6c193680e603994e3
16+
IMAGE_BPFTRACE_BASE := quay.io/fntlnz/kubectl-trace-bpftrace-base:$(BPFTRACESHA)
1417

1518
IMAGE_BUILD_FLAGS ?= "--no-cache"
1619

@@ -35,18 +38,18 @@ clean:
3538

3639
.PHONY: image/build
3740
image/build:
38-
$(DOCKER) build $(IMAGE_BUILD_FLAGS) -t $(IMAGE_BPFTRACE_BRANCH) -f Dockerfile.bpftrace .
39-
$(DOCKER) tag $(IMAGE_BPFTRACE_BRANCH) $(IMAGE_BPFTRACE_COMMIT)
41+
$(DOCKER) build --build-arg bpftracesha=$(BPFTRACESHA) $(IMAGE_BUILD_FLAGS) -t $(IMAGE_TRACERUNNER_BRANCH) -f Dockerfile.tracerunner .
42+
$(DOCKER) tag $(IMAGE_TRACERUNNER_BRANCH) $(IMAGE_TRACERUNNER_COMMIT)
4043

4144
.PHONY: image/push
4245
image/push:
43-
$(DOCKER) push $(IMAGE_BPFTRACE_BRANCH)
44-
$(DOCKER) push $(IMAGE_BPFTRACE_COMMIT)
46+
$(DOCKER) push $(IMAGE_TRACERUNNER_BRANCH)
47+
$(DOCKER) push $(IMAGE_TRACERUNNER_COMMIT)
4548

4649
.PHONY: image/latest
4750
image/latest:
48-
$(DOCKER) tag $(IMAGE_BPFTRACE_COMMIT) $(IMAGE_BPFTRACE_LATEST)
49-
$(DOCKER) push $(IMAGE_BPFTRACE_LATEST)
51+
$(DOCKER) tag $(IMAGE_TRACERUNNER_COMMIT) $(IMAGE_TRACERUNNER_LATEST)
52+
$(DOCKER) push $(IMAGE_TRACERUNNER_LATEST)
5053

5154
.PHONY: test
5255
test:
@@ -56,3 +59,10 @@ test:
5659
integration:
5760
TEST_KUBECTLTRACE_BINARY=$(shell pwd)/$(kubectl_trace) $(GO) test -v ./integration/...
5861

62+
.PHONY: bpftraceimage/build
63+
bpftraceimage/build:
64+
$(DOCKER) build --build-arg bpftracesha=$(BPFTRACESHA) $(IMAGE_BUILD_FLAGS) -t $(IMAGE_BPFTRACE_BASE) -f Dockerfile.bpftracebase .
65+
66+
.PHONY: bpftraceimage/push
67+
bpftraceimage/push:
68+
$(DOCKER) push $(IMAGE_BPFTRACE_BASE)

integration/cmd_run_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func (k *KubectlTraceSuite) TestRunNode(c *check.C) {
1313

1414
nodeName := nodes[0].String()
1515
bpftraceProgram := `kprobe:do_sys_open { printf("%s: %s\n", comm, str(arg1)) }'`
16-
out := k.KubectlTraceCmd(c, "run", "-e", bpftraceProgram, nodeName)
16+
out := k.KubectlTraceCmd(c, "run", "-e", bpftraceProgram, nodeName, "-a")
1717
match, err := regexp.MatchString("trace (\\w+-){4}\\w+ created", out)
1818
c.Assert(err, check.IsNil)
1919
c.Assert(match, check.Equals, true)

0 commit comments

Comments
 (0)