Skip to content
Merged
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
19 changes: 12 additions & 7 deletions .github/workflows/operator-e2e-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,17 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@v1.3.1
with:
android: true
dotnet: true
haskell: true
large-packages: false
docker-images: false
swap-storage: false
tool-cache: false

- name: Set up Go
uses: actions/setup-go@v5
with:
Expand All @@ -49,7 +60,7 @@ jobs:
nodes:
- role: control-plane
extraMounts:
- hostPath: /tmp/kind
- hostPath: /mnt/kind
containerPath: /var/lib/containerd
EOF

Expand All @@ -64,12 +75,6 @@ jobs:
cd infra/feast-operator/
make test-e2e

- name: Clean up docker images
if: always()
run: |
docker images --format '{{.Repository}}:{{.Tag}}' | grep 'feast' | xargs -r docker rmi -f
docker system prune -a -f

- name: Run Previous version tests
run: |
# Run the previous version tests
Expand Down
6 changes: 0 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -554,12 +554,6 @@ build-feast-operator-docker:

# Dev images

build-feature-server-dev-minimal:
docker buildx build \
-t feastdev/feature-server:dev \
-f sdk/python/feast/infra/feature_servers/multicloud/Dockerfile \
--load sdk/python/feast/infra/feature_servers/multicloud

build-feature-server-dev:
docker buildx build \
-t feastdev/feature-server:dev \
Expand Down
3 changes: 1 addition & 2 deletions infra/feast-operator/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,7 @@ docker-build: ## Build docker image with the manager.
## Build feast docker image.
.PHONY: feast-ci-dev-docker-img
feast-ci-dev-docker-img:
cd ./../.. && make build-feature-server-dev-minimal

cd ./../.. && make build-feature-server-dev

.PHONY: docker-push
docker-push: ## Push docker image with the manager.
Expand Down
2 changes: 1 addition & 1 deletion infra/feast-operator/test/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ var _ = Describe("controller", Ordered, func() {
featureStoreName, feastResourceName, feastK8sResourceNames)

BeforeAll(func() {
utils.DeployOperatorFromCode("/test/e2e")
utils.DeployOperatorFromCode("/test/e2e", false)
})

AfterAll(func() {
Expand Down
2 changes: 1 addition & 1 deletion infra/feast-operator/test/upgrade/upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (
var _ = Describe("operator upgrade", Ordered, func() {
BeforeAll(func() {
utils.DeployPreviousVersionOperator()
utils.DeployOperatorFromCode("/test/e2e")
utils.DeployOperatorFromCode("/test/e2e", true)
})

AfterAll(func() {
Expand Down
48 changes: 25 additions & 23 deletions infra/feast-operator/test/utils/test_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ func fixRemoteFeastK8sResourceNames(feastK8sResourceNames []string, remoteFeastR
}

// DeployOperatorFromCode - Creates the images for the operator and deploys it
func DeployOperatorFromCode(testDir string) {
func DeployOperatorFromCode(testDir string, skipBuilds bool) {
_, isRunOnOpenShiftCI := os.LookupEnv("RUN_ON_OPENSHIFT_CI")
if !isRunOnOpenShiftCI {
By("creating manager namespace")
Expand All @@ -361,32 +361,34 @@ func DeployOperatorFromCode(testDir string) {
// projectimage stores the name of the image used in the example
var projectimage = "localhost/feast-operator:v0.0.1"

By("building the manager(Operator) image")
cmd = exec.Command("make", "docker-build", fmt.Sprintf("IMG=%s", projectimage))
_, err = Run(cmd, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("loading the the manager(Operator) image on Kind")
err = LoadImageToKindClusterWithName(projectimage, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

// this image will be built in above make target.
var feastImage = "feastdev/feature-server:dev"
var feastLocalImage = "localhost/feastdev/feature-server:dev"

By("building the feast image")
cmd = exec.Command("make", "feast-ci-dev-docker-img")
_, err = Run(cmd, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("Tag the local feast image for the integration tests")
cmd = exec.Command("docker", "image", "tag", feastImage, feastLocalImage)
_, err = Run(cmd, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("loading the the feast image on Kind cluster")
err = LoadImageToKindClusterWithName(feastLocalImage, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())
if !skipBuilds {
By("building the manager(Operator) image")
cmd = exec.Command("make", "docker-build", fmt.Sprintf("IMG=%s", projectimage))
_, err = Run(cmd, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("loading the the manager(Operator) image on Kind")
err = LoadImageToKindClusterWithName(projectimage, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("building the feast image")
cmd = exec.Command("make", "feast-ci-dev-docker-img")
_, err = Run(cmd, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("Tag the local feast image for the integration tests")
cmd = exec.Command("docker", "image", "tag", feastImage, feastLocalImage)
_, err = Run(cmd, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())

By("loading the the feast image on Kind cluster")
err = LoadImageToKindClusterWithName(feastLocalImage, testDir)
ExpectWithOffset(1, err).NotTo(HaveOccurred())
}

By("installing CRDs")
cmd = exec.Command("make", "install")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ USER 0
RUN npm install -g yarn yalc && rm -rf .npm
USER default

COPY --chown=default . ${APP_ROOT}/src
COPY --chown=default .git ${APP_ROOT}/src/.git
COPY --chown=default setup.py pyproject.toml README.md Makefile ${APP_ROOT}/src/
COPY --chown=default protos ${APP_ROOT}/src/protos
COPY --chown=default ui ${APP_ROOT}/src/ui
COPY --chown=default sdk/python ${APP_ROOT}/src/sdk/python

WORKDIR ${APP_ROOT}/src/ui
RUN npm install && \
Expand Down
Loading