Skip to content

Commit

Permalink
Dockerfile refactoring to build oc together with krkn
Browse files Browse the repository at this point in the history
Signed-off-by: Tullio Sebastiani <[email protected]>

added oc in /usr/local/bin as well

Signed-off-by: Tullio Sebastiani <[email protected]>

fixed dumb docker build copy

Signed-off-by: Tullio Sebastiani <[email protected]>
  • Loading branch information
tsebastiani authored and chaitanyaenr committed Jun 4, 2024
1 parent 31266fb commit 86a7427
Showing 1 changed file with 31 additions and 13 deletions.
44 changes: 31 additions & 13 deletions containers/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,31 +1,49 @@
# azure-client
FROM mcr.microsoft.com/azure-cli:latest as azure-cli

# oc build
FROM golang:1.22.2 AS oc-build
RUN apt-get update && apt-get install -y libkrb5-dev
WORKDIR /tmp
RUN git clone --branch release-4.18 https://github.com/openshift/oc.git
WORKDIR /tmp/oc
RUN make GO_REQUIRED_MIN_VERSION:= oc

FROM registry.access.redhat.com/ubi9/ubi:latest

# krkn version that will be built
ENV KRKN_VERSION v1.5.14

ENV KUBECONFIG /root/.kube/config

# Copy azure client binary from azure-cli image
COPY --from=azure-cli /usr/local/bin/az /usr/bin/az
# update yum and install dependencies
RUN yum update -y glibc glibc-common glibc-minimal-langpack runc
RUN rpm -e --allmatches --nodeps --noscripts --notriggers python3-requests
# Install dependencies
RUN yum install -y git python39 python3-pip jq gettext wget

# get yq
RUN wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq && chmod +x /usr/bin/yq

# get kubectl
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" &&\
cp kubectl /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl &&\
cp kubectl /usr/bin/kubectl && chmod +x /usr/bin/kubectl

# copy azure client binary from azure-cli image
COPY --from=azure-cli /usr/local/bin/az /usr/bin/az

# copy oc client binary from oc-build image
COPY --from=oc-build /tmp/oc/oc /usr/bin/oc
COPY --from=oc-build /tmp/oc/oc /usr/local/bin/oc

# krkn build
RUN python3.9 -m pip install -U pip
RUN git clone https://github.com/krkn-chaos/krkn.git --branch v1.5.14 /root/kraken && \
RUN git clone https://github.com/krkn-chaos/krkn.git --branch $KRKN_VERSION /root/kraken && \
mkdir -p /root/.kube
WORKDIR /root/kraken
RUN pip3.9 install -r requirements.txt
RUN pip3.9 install virtualenv
RUN wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq && chmod +x /usr/bin/yq

# Get Kubernetes and OpenShift clients from stable releases
WORKDIR /tmp
RUN wget https://krkn-mirror.s3.us-west-2.amazonaws.com/oc/oc-krkn.tar.gz &&\
tar xfvz oc-krkn.tar.gz && cp oc /usr/bin/oc && cp oc /usr/local/bin/oc
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" &&\
cp kubectl /usr/local/bin/kubectl && cp kubectl /usr/bin/kubectl

WORKDIR /root/kraken

ENTRYPOINT ["python3.9", "run_kraken.py"]
CMD ["--config=config/config.yaml"]

0 comments on commit 86a7427

Please sign in to comment.