Unverified Commit 11d7d3f5 authored by Neelay Shah's avatar Neelay Shah Committed by GitHub
Browse files

chore: Remove deprecated Earthfile (#5206)


Co-authored-by: default avatarClaude Opus 4.5 <noreply@anthropic.com>
parent 96e42f72
# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################
# 🚨 DEPRECATION NOTICE 🚨
#
# This Earthfile is being replaced by docker
# This file is kept temporarily for backward compatibility but will
# be removed in a future release. Please migrate to the new system.
#######################################################################
VERSION 0.8
############### ARTIFACTS TARGETS ##############################
# These targets are invoked in child Earthfiles to pass top-level files that are out of their build context
# https://docs.earthly.dev/earthly-0.6/best-practices#copying-files-from-outside-the-build-context
############### SHARED LIBRARY TARGETS ##############################
golang-base:
FROM golang:1.24
RUN apt-get update && apt-get install -y git && apt-get clean && rm -rf /var/lib/apt/lists/* && go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
operator-src:
FROM +golang-base
COPY ./deploy/operator /artifacts/operator
SAVE ARTIFACT /artifacts/operator
# artifact-base:
# FROM python:3.12-slim-bookworm
# WORKDIR /artifacts
# dynamo-source-artifacts:
# FROM +artifact-base
# COPY . /artifacts
# SAVE ARTIFACT /artifacts
uv-source:
FROM ghcr.io/astral-sh/uv:latest
SAVE ARTIFACT /uv
dynamo-base:
FROM ubuntu:24.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq python3-dev python3-pip python3-venv libucx0 curl
COPY +uv-source/uv /bin/uv
ENV CARGO_BUILD_JOBS=16
RUN mkdir /opt/dynamo && \
uv venv /opt/dynamo/venv --python 3.12 && \
. /opt/dynamo/venv/bin/activate && \
uv pip install pip
ENV VIRTUAL_ENV=/opt/dynamo/venv
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
rust-base:
FROM +dynamo-base
# Rust build/dev dependencies
RUN apt update -y && \
apt install --no-install-recommends -y \
wget \
build-essential \
protobuf-compiler \
cmake \
libssl-dev \
pkg-config \
libclang-dev \
git
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb && \
apt install -y ./cuda-keyring_1.1-1_all.deb && \
apt update && \
apt install -y cuda-toolkit-12-8 nvidia-utils-535 nvidia-driver-535 && \
rm cuda-keyring_1.1-1_all.deb
# Set CUDA compute capability explicitly
ENV CUDA_COMPUTE_CAP=80
ENV CUDA_HOME=/usr/local/cuda-12.8
ENV CUDA_ROOT=/usr/local/cuda-12.8
ENV CUDA_PATH=/usr/local/cuda-12.8
ENV CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.8
ENV PATH=/usr/local/cuda-12.8/bin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH
ENV RUSTUP_HOME=/usr/local/rustup
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=/usr/local/cargo/bin:$PATH
ENV RUST_VERSION=1.90.0
ENV RUSTARCH=x86_64-unknown-linux-gnu
RUN wget --tries=3 --waitretry=5 "https://static.rust-lang.org/rustup/archive/1.28.1/x86_64-unknown-linux-gnu/rustup-init" && \
echo "a3339fb004c3d0bb9862ba0bce001861fe5cbde9c10d16591eb3f39ee6cd3e7f *rustup-init" | sha256sum -c - && \
chmod +x rustup-init && \
./rustup-init -y --no-modify-path --profile minimal --default-toolchain 1.90.0 --default-host x86_64-unknown-linux-gnu && \
rm rustup-init && \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME
dynamo-build:
FROM +rust-base
WORKDIR /workspace
COPY Cargo.toml Cargo.lock ./
COPY pyproject.toml README.md ./
COPY components/ components/
COPY lib/ lib/
COPY launch/ launch/
COPY deploy/ deploy/
ENV CARGO_TARGET_DIR=/workspace/target
RUN cargo build --release --locked --features cuda && \
cargo doc --no-deps
RUN cd /workspace/lib/bindings/python && \
uv build --wheel --out-dir /workspace/dist --python 3.12
RUN cd /workspace && \
uv build --wheel --out-dir /workspace/dist
# Save wheels
SAVE ARTIFACT /workspace/dist/ai_dynamo_runtime*.whl
SAVE ARTIFACT /workspace/dist/ai_dynamo*.whl
dynamo-base-docker:
ARG IMAGE=dynamo-base-docker
ARG DOCKER_SERVER=my-registry
ARG IMAGE_TAG=latest
FROM ubuntu:24.04
WORKDIR /workspace
COPY container/deps/requirements.txt /tmp/requirements.txt
# Install Python and other dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3.12 \
curl && \
rm -rf /var/lib/apt/lists/*
COPY +uv-source/uv /bin/uv
# Create and activate virtual environment
RUN mkdir -p /opt/dynamo && \
uv venv /opt/dynamo/venv --python 3.12 && \
. /opt/dynamo/venv/bin/activate && \
uv pip install pip
ENV VIRTUAL_ENV=/opt/dynamo/venv
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
RUN UV_GIT_LFS=1 uv pip install -r /tmp/requirements.txt
# Copy and install wheels -- ai-dynamo-runtime first, then ai-dynamo
COPY +dynamo-build/ai_dynamo_runtime*.whl /tmp/wheels/
COPY +dynamo-build/ai_dynamo*.whl /tmp/wheels/
RUN . /opt/dynamo/venv/bin/activate && \
uv pip install /tmp/wheels/*.whl && \
rm -rf /tmp/wheels
SAVE IMAGE --push $DOCKER_SERVER/$IMAGE:$IMAGE_TAG
############### ALL TARGETS ##############################
all-test:
BUILD ./deploy/operator+test
all-docker:
ARG DOCKER_SERVER=my-registry
ARG IMAGE_TAG=latest
BUILD ./deploy/operator+docker --DOCKER_SERVER=$DOCKER_SERVER --IMAGE_TAG=$IMAGE_TAG
all-lint:
BUILD ./deploy/operator+lint
all:
BUILD +all-test
BUILD +all-docker
BUILD +all-lint
# For testing
custom:
ARG DOCKER_SERVER=my-registry
ARG IMAGE_TAG=latest
BUILD +all-test
# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################
# 🚨 DEPRECATION NOTICE 🚨
#
# This Earthfile for the operator is being replaced by docker
# This file is kept temporarily for backward compatibility but will
# be removed in a future release. Please migrate to the new system.
#######################################################################
VERSION 0.8
# Base container for both build and test
deps:
FROM ../../../+golang-base
COPY . /app/operator
WORKDIR /app/operator
RUN go mod download
lint:
FROM +deps
RUN golangci-lint run --config ./.golangci.yml
build:
FROM +deps
RUN CGO_ENABLED=0 go build -o manager ./cmd/main.go
SAVE ARTIFACT manager
test:
FROM +deps
RUN make test
SAVE ARTIFACT cover.out
docker:
ARG DOCKER_SERVER=my-registry
ARG IMAGE_TAG=latest
ARG IMAGE_SUFFIX=dynamo-operator
FROM nvcr.io/nvidia/distroless/go:v3.1.13
WORKDIR /
COPY +build/manager .
USER 65532:65532
CMD ["./manager"]
SAVE IMAGE --push $DOCKER_SERVER/$IMAGE_SUFFIX:$IMAGE_TAG
...@@ -34,8 +34,8 @@ Build and Push Operator Image ...@@ -34,8 +34,8 @@ Build and Push Operator Image
``` ```
cd deploy/operator cd deploy/operator
vim Earthfile # change ARG IMAGE_SUFFIX=<ECR_REPOSITORY> docker build -t $DOCKER_SERVER/dynamo-operator:$IMAGE_TAG .
earthly --push +docker --DOCKER_SERVER=$DOCKER_SERVER --IMAGE_TAG=$IMAGE_TAG docker push $DOCKER_SERVER/dynamo-operator:$IMAGE_TAG
``` ```
Create secrets Create secrets
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment