Skip to content

Commit ae93891

Browse files
authored
Fix xdp install in retina test (microsoft#2283)
# Description Made the following fixes to the install-ebpf-xdp.ps1 script which is used to setup node for e2e tests. - Add xdp cert to cert store to resolve installation errors. - Download and install retinaebpfapi on the node since it is no longer packaged with retina image - Install vc++ runtime needed for retinaebpfapi.dll - Copy ebpfapi.dll to the dir where retinaebpfapi.dll is (this can be updated when retinaebpfapi can find the dll from path) ## Checklist - [ ] I have read the [contributing documentation](https://retina.sh/docs/Contributing/overview). - [X] I signed and signed-off the commits (`git commit -S -s ...`). See [this documentation](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification) on signing commits. - [ ] I have correctly attributed the author(s) of the code. - [X] I have tested the changes locally. - [ ] I have followed the project's style guidelines. - [ ] I have updated the documentation, if necessary. - [ ] I have added tests, if applicable. ## Screenshots (if applicable) or Testing Completed Please add any relevant screenshots or GIFs to showcase the changes made. ## Additional Notes Add any additional notes or context about the pull request here. --- Please refer to the [CONTRIBUTING.md](../CONTRIBUTING.md) file for more information on how to contribute to this project.
1 parent a085d15 commit ae93891

10 files changed

Lines changed: 235 additions & 51 deletions

File tree

cli/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.2-2-cbl-mariner2.0 --format "{{.Name}}@{{.Digest}}"
2-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang@sha256:5341a0010ecff114ee2f11f5eaa4f73b721b54142954041523f3e785d5c4b978 AS builder
1+
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0 --format "{{.Name}}@{{.Digest}}"
2+
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0@sha256:250d01e55a37bd79d7014ae83f9f50aa6fa5570ca910e7f19faeff4bb0132ae1 AS builder
33

44
ARG VERSION
55
ARG APP_INSIGHTS_ID
@@ -20,8 +20,8 @@ RUN --mount=type=cache,target="/root/.cache/go-build" \
2020
-X "github.com/microsoft/retina/internal/buildinfo.ApplicationInsightsID"="$APP_INSIGHTS_ID"" \
2121
-a -o kubectl-retina cli/main.go
2222

23-
# mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0
24-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/cbl-mariner/distroless/minimal@sha256:db87903c5d4d9d6760e86a274914efd6a3bb5914c0b5a6c6b35350ec297fea4f
23+
# skopeo inspect docker://mcr.microsoft.com/azurelinux/distroless/minimal:3.0 --format "{{.Name}}@{{.Digest}}"
24+
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/azurelinux/distroless/minimal:3.0@sha256:5a66f9f16ac675db2a8229dac72d83811b73b502d6ad192d8b374c7f3be498af
2525
WORKDIR /
2626
COPY --from=builder /workspace/kubectl-retina .
2727

controller/Dockerfile

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22
ARG OS_VERSION=ltsc2022
33
# pinned base images
44

5-
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.2-2-cbl-mariner2.0 --format "{{.Name}}@{{.Digest}}"
6-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang@sha256:5341a0010ecff114ee2f11f5eaa4f73b721b54142954041523f3e785d5c4b978 AS golang
5+
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0 --format "{{.Name}}@{{.Digest}}"
6+
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0@sha256:250d01e55a37bd79d7014ae83f9f50aa6fa5570ca910e7f19faeff4bb0132ae1 AS golang
77

8-
# skopeo inspect docker://mcr.microsoft.com/cbl-mariner/base/core:2.0 --format "{{.Name}}@{{.Digest}}"
9-
FROM mcr.microsoft.com/cbl-mariner/base/core@sha256:8deab931d4af66264253cce66471a04742dc6f8d5d175d4c18e930eda615c0aa AS mariner-core
8+
# skopeo inspect docker://mcr.microsoft.com/azurelinux/base/core:3.0 --format "{{.Name}}@{{.Digest}}"
9+
FROM mcr.microsoft.com/azurelinux/base/core:3.0@sha256:35149ae8dd179684f969944f54a337c665a64e702486154eb44253fb39c2505b AS azurelinux-core
1010

11-
# skopeo inspect docker://mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0 --format "{{.Name}}@{{.Digest}}"
12-
FROM mcr.microsoft.com/cbl-mariner/distroless/minimal@sha256:0b09ee9e988e338f86432484c980c9c334d2b35b3bec6ce14298b754ecb6460b AS mariner-distroless
11+
# skopeo inspect docker://mcr.microsoft.com/azurelinux/distroless/minimal:3.0 --format "{{.Name}}@{{.Digest}}"
12+
FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0@sha256:5a66f9f16ac675db2a8229dac72d83811b73b502d6ad192d8b374c7f3be498af AS azurelinux-distroless
1313

14-
# mcr.microsoft.com/windows/servercore:ltsc2019
14+
# skopeo inspect docker://mcr.microsoft.com/windows/servercore:ltsc2019 --override-os windows --format "{{.Name}}@{{.Digest}}"
1515
FROM mcr.microsoft.com/windows/servercore@sha256:8077f3e5b0987c388735917f0d15a3dd5fc773f8b5699c612ccb539d42644185 AS ltsc2019
1616

17-
# mcr.microsoft.com/windows/servercore:ltsc2022
17+
# skopeo inspect docker://mcr.microsoft.com/windows/servercore:ltsc2022 --override-os windows --format "{{.Name}}@{{.Digest}}"
1818
FROM mcr.microsoft.com/windows/servercore@sha256:e000e9a1712065a0218447c20ae19984b447fa741d11cf64696b8a1172fcd7da AS ltsc2022
1919

2020

@@ -28,7 +28,7 @@ ARG GOOS=linux # default to linux
2828
ENV GOARCH=${GOARCH}
2929
ENV GOOS=${GOOS}
3030
RUN if [ "$GOOS" = "linux" ] ; then \
31-
tdnf install -y clang16 lld16 bpftool libbpf-devel; \
31+
tdnf install -y clang lld bpftool libbpf-devel; \
3232
fi
3333
COPY ./pkg/plugin /go/src/github.com/microsoft/retina/pkg/plugin
3434
WORKDIR /go/src/github.com/microsoft/retina
@@ -45,12 +45,6 @@ RUN if [ "$GOOS" = "linux" ] ; then \
4545
rm -rf ./pkg/plugin && tar xvf /gen.tar.gz ./pkg/plugin; \
4646
fi
4747

48-
FROM golang AS eBPFRetinaStage
49-
WORKDIR /tmp
50-
RUN tdnf install -y unzip && \
51-
curl -L -o eBPFRetina.zip https://www.nuget.org/api/v2/package/Microsoft.Wcn.Observability.eBPF.Retina.x64/1.3.0 && \
52-
unzip -d eBPFRetina eBPFRetina.zip || exit 0 && \
53-
if [ ! -d "eBPFRetina" ]; then echo "eBPFRetina directory not found after unzip!" && exit 1; fi
5448

5549
# capture binary
5650
FROM intermediate AS capture-bin
@@ -86,9 +80,9 @@ RUN --mount=type=cache,target="/root/.cache/go-build" go build -v -o /go/bin/ret
8680

8781

8882
# tools image
89-
FROM mariner-core AS tools
83+
FROM azurelinux-core AS tools
9084
RUN tdnf install -y \
91-
clang16 \
85+
clang \
9286
iproute \
9387
iptables \
9488
tcpdump \
@@ -116,17 +110,17 @@ RUN echo "Hubble version: $HUBBLE_VERSION" && \
116110
rm hubble-linux-${HUBBLE_ARCH}.tar.gz && rm hubble-linux-${HUBBLE_ARCH}.tar.gz.sha256sum
117111

118112
# init final image
119-
FROM mariner-distroless AS init
113+
FROM azurelinux-distroless AS init
120114
COPY --from=init-bin /go/bin/retina/initretina /retina/initretina
121115
COPY --from=tools /lib/ /lib
122116
COPY --from=tools /usr/lib/ /usr/lib
123117
ENTRYPOINT ["./retina/initretina"]
124118

125119

126120
# agent final image
127-
# mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0
128-
# mcr.microsoft.com/cbl-mariner/distroless/minimal@sha256:63a0a70ceaa1320bc6eb98b81106667d43e46b674731ea8d28e4de1b87e0747f
129-
FROM mariner-distroless AS agent
121+
# mcr.microsoft.com/azurelinux/distroless/minimal:3.0
122+
# mcr.microsoft.com/azurelinux/distroless/minimal@sha256:0801b80a0927309572b9adc99bd1813bc680473175f6e8175cd4124d95dbd50c
123+
FROM azurelinux-distroless AS agent
130124
COPY --from=tools /lib/ /lib
131125
COPY --from=tools /usr/lib/ /usr/lib
132126
COPY --from=tools /tmp/bin/ /bin
@@ -142,7 +136,6 @@ ENTRYPOINT ["./retina/controller"]
142136

143137
# agent final image for windows
144138
FROM ${OS_VERSION} AS agent-win
145-
COPY --from=eBPFRetinaStage /tmp/eBPFRetina/build/native/bin/retinaebpfapi.dll /retinaebpfapi.dll
146139
COPY --from=controller-bin /go/src/github.com/microsoft/retina/windows/kubeconfigtemplate.yaml kubeconfigtemplate.yaml
147140
COPY --from=controller-bin /go/src/github.com/microsoft/retina/windows/setkubeconfigpath.ps1 setkubeconfigpath.ps1
148141
COPY --from=controller-bin /go/bin/retina/controller controller.exe

controller/Dockerfile.gogen

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.2-2-cbl-mariner2.0 --format "{{.Name}}@{{.Digest}}"
2-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang@sha256:5341a0010ecff114ee2f11f5eaa4f73b721b54142954041523f3e785d5c4b978
1+
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0 --format "{{.Name}}@{{.Digest}}"
2+
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0@sha256:250d01e55a37bd79d7014ae83f9f50aa6fa5570ca910e7f19faeff4bb0132ae1
33

44
# Default linux/architecture.
55
ARG GOOS=linux

controller/Dockerfile.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.2-2-cbl-mariner2.0 --format "{{.Name}}@{{.Digest}}"
2-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang@sha256:5341a0010ecff114ee2f11f5eaa4f73b721b54142954041523f3e785d5c4b978
1+
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0 --format "{{.Name}}@{{.Digest}}"
2+
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0@sha256:250d01e55a37bd79d7014ae83f9f50aa6fa5570ca910e7f19faeff4bb0132ae1
33

44
LABEL Name=retina-builder Version=0.0.1
55

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/microsoft/retina
22

3-
go 1.24.2
3+
go 1.24.3
44

55
require (
66
github.com/go-chi/chi/v5 v5.2.1
@@ -260,7 +260,6 @@ require (
260260

261261
require (
262262
github.com/Azure/azure-container-networking/zapai v0.0.3
263-
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
264263
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0
265264
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.9.0
266265
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v4 v4.8.0
@@ -351,6 +350,7 @@ require (
351350
github.com/Antonboom/errname v1.0.0 // indirect
352351
github.com/Antonboom/nilnil v1.0.1 // indirect
353352
github.com/Antonboom/testifylint v1.5.2 // indirect
353+
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect
354354
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
355355
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
356356
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v6 v6.4.0 // indirect

go.sum

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -478,8 +478,7 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr
478478
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
479479
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
480480
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
481-
github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
482-
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
481+
483482
github.com/docker/cli v26.0.0+incompatible h1:90BKrx1a1HKYpSnnBFR6AgDq/FqkHxwlUyzJVPxD30I=
484483
github.com/docker/cli v26.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
485484
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=

operator/Dockerfile

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.2-2-cbl-mariner2.0 --format "{{.Name}}@{{.Digest}}"
2-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang@sha256:5341a0010ecff114ee2f11f5eaa4f73b721b54142954041523f3e785d5c4b978 AS builder
1+
# skopeo inspect docker://mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0 --format "{{.Name}}@{{.Digest}}"
2+
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/oss/go/microsoft/golang:1.24.4-azurelinux3.0@sha256:250d01e55a37bd79d7014ae83f9f50aa6fa5570ca910e7f19faeff4bb0132ae1 AS builder
33

44
ARG VERSION
55
ARG APP_INSIGHTS_ID
66

77
WORKDIR /workspace
88
COPY . .
99

10-
# Install jq, not sure why this went missing in the 1.24.1-2-cbl-mariner2.0 base go image.
1110
RUN tdnf install -y jq
1211

1312
# Default linux/architecture.
@@ -25,8 +24,8 @@ RUN --mount=type=cache,target="/root/.cache/go-build" \
2524
-a -o retina-operator operator/main.go
2625

2726
##################### controller #######################
28-
# mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0
29-
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/cbl-mariner/distroless/minimal@sha256:db87903c5d4d9d6760e86a274914efd6a3bb5914c0b5a6c6b35350ec297fea4f
27+
# skopeo inspect docker://mcr.microsoft.com/azurelinux/distroless/minimal:3.0 --format "{{.Name}}@{{.Digest}}"
28+
FROM mcr.microsoft.com/azurelinux/distroless/minimal:3.0@sha256:5a66f9f16ac675db2a8229dac72d83811b73b502d6ad192d8b374c7f3be498af
3029
WORKDIR /
3130
COPY --from=builder /lib /lib
3231
COPY --from=builder /usr/lib/ /usr/lib

shell/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# skopeo inspect docker://mcr.microsoft.com/azurelinux/base/core:3.0 --format "{{.Name}}@{{.Digest}}"
2-
FROM mcr.microsoft.com/azurelinux/base/core@sha256:9948138108a3d69f1dae62104599ac03132225c3b7a5ac57b85a214629c8567d
2+
FROM mcr.microsoft.com/azurelinux/base/core:3.0@sha256:35149ae8dd179684f969944f54a337c665a64e702486154eb44253fb39c2505b
33

44
RUN tdnf install -y \
55
bind-utils \

0 commit comments

Comments
 (0)