Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: add correct binary for manager and set runAsUser: 1000 in deployment.yaml #313

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions build/Containerfile.controlplane
Original file line number Diff line number Diff line change
@@ -1,16 +1,28 @@
FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx-tools

FROM --platform=$BUILDPLATFORM rust:alpine
ARG TARGETPLATFORM
ARG PROJECT_DIR=/workspace
ARG BUILD_DIR=$PROJECT_DIR/build
FROM --platform=$BUILDPLATFORM rust:alpine AS builder

RUN apk add --no-cache clang lld
COPY --from=xx-tools / /

WORKDIR /workspace

COPY --from=xx-tools / /

ARG TARGETPLATFORM
ARG PROJECT_DIR=/workspace
ARG BUILD_DIR=$PROJECT_DIR/build

jokestax marked this conversation as resolved.
Show resolved Hide resolved
RUN --mount=type=bind,source=../controlplane/src/,target=src \
--mount=type=bind,source=../controlplane/Cargo.toml,target=Cargo.toml \
--mount=type=bind,source=../controlplane/Cargo.lock,target=Cargo.lock \
xx-cargo build --release --target-dir $BUILD_DIR && \
xx-verify ./build/$(xx-cargo --print-target-triple)/release/controller

RUN cp ./build/$(xx-cargo --print-target-triple)/release/controller /workspace/manager
jokestax marked this conversation as resolved.
Show resolved Hide resolved

FROM alpine:latest

WORKDIR /

COPY --from=builder /workspace/manager /manager

1 change: 1 addition & 0 deletions config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ spec:
name: manager
securityContext:
allowPrivilegeEscalation: false
runAsUser: 1000
jokestax marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should be setting the user in the dockerfile itself like so:

USER 1000:1000

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry for the late reply,been travelling to attend Kubecon India 😅 ,i will make the changes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @aryan9600 ,i tried by placing USER 1001:1001 in dockerfile,it shows the same error as error: container has runasnonroot and image will run as root

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you might be setting the user in the build step of the Dockerfile. you should set it in the final step of the Dockerfile:

FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx-tools

FROM --platform=$BUILDPLATFORM rust:alpine AS builder

RUN apk add --no-cache clang lld

WORKDIR /workspace

COPY --from=xx-tools / /

ARG TARGETPLATFORM
ARG PROJECT_DIR=/workspace
ARG BUILD_DIR=$PROJECT_DIR/build

RUN --mount=type=bind,source=../controlplane/src/,target=src \
    --mount=type=bind,source=../controlplane/Cargo.toml,target=Cargo.toml \
    --mount=type=bind,source=../controlplane/Cargo.lock,target=Cargo.lock \
    xx-cargo build --release --target-dir $BUILD_DIR && \
    xx-verify ./build/$(xx-cargo --print-target-triple)/release/controller

RUN cp ./build/$(xx-cargo --print-target-triple)/release/controller /workspace/manager

FROM alpine:latest

WORKDIR /

USER 1000:1000
COPY --from=builder /workspace/manager /manager

i can get the application to run with this Dockerfile and without the need for runAsUser in the deployment configuration.

Copy link
Contributor Author

@jokestax jokestax Dec 27, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi @aryan9600 ,i did set in the final step but its not working 🥲 ,can we hop on a meet whenever you are free?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you share the error you're seeing?

capabilities:
drop:
- "ALL"
Expand Down
Loading