From f3472007fc0e2de60176332362fda4a7ae635113 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 11:14:46 -0500 Subject: [PATCH 01/55] fix: Update workflows to also use workflow_call Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_helm_charts.yml | 10 ++++++++++ .github/workflows/publish_images.yml | 10 ++++++++++ .github/workflows/publish_java_sdk.yml | 11 +++++++++++ .github/workflows/publish_python_sdk.yml | 10 ++++++++++ 4 files changed, 41 insertions(+) diff --git a/.github/workflows/publish_helm_charts.yml b/.github/workflows/publish_helm_charts.yml index 185caaced22..ac895d3c646 100644 --- a/.github/workflows/publish_helm_charts.yml +++ b/.github/workflows/publish_helm_charts.yml @@ -11,6 +11,16 @@ on: required: true default: "" type: string + workflow_call: # Allows trigger of the workflow from another workflow + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + token: + description: 'Personal Access Token' + required: true + default: "" + type: string jobs: get-version: diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index 91a36efa75e..5b0c3fb1776 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -11,6 +11,16 @@ on: required: true default: "" type: string + workflow_call: # Allows trigger of the workflow from another workflow + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + token: + description: 'Personal Access Token' + required: true + default: "" + type: string jobs: get-version: diff --git a/.github/workflows/publish_java_sdk.yml b/.github/workflows/publish_java_sdk.yml index 0e287698693..756f1ebd21d 100644 --- a/.github/workflows/publish_java_sdk.yml +++ b/.github/workflows/publish_java_sdk.yml @@ -11,6 +11,17 @@ on: required: true default: "" type: string + workflow_call: # Allows trigger of the workflow from another workflow + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + token: + description: 'Personal Access Token' + required: true + default: "" + type: string + jobs: get-version: diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index d6b526791d9..095b0f29204 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -11,6 +11,16 @@ on: required: true default: "" type: string + workflow_call: # Allows trigger of the workflow from another workflow + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + token: + description: 'Personal Access Token' + required: true + default: "" + type: string jobs: get-version: From 7f161432fe1cc46a6301aff124b15a248265d1a0 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 11:17:28 -0500 Subject: [PATCH 02/55] fix: Also adding workflow_call to release version Signed-off-by: Francisco Javier Arceo --- .github/workflows/get_semantic_release_version.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/get_semantic_release_version.yml b/.github/workflows/get_semantic_release_version.yml index c800810dced..35112967d42 100644 --- a/.github/workflows/get_semantic_release_version.yml +++ b/.github/workflows/get_semantic_release_version.yml @@ -11,6 +11,16 @@ on: required: true default: "" type: string + workflow_call: # Allows trigger of the workflow from another workflow + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + token: + description: 'Personal Access Token' + required: true + default: "" + type: string jobs: get-version: From 5efd8157786588682c716c9d4806e2a07dd0f94a Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 11:30:31 -0500 Subject: [PATCH 03/55] fix: Adding type to release version input Signed-off-by: Francisco Javier Arceo --- .github/workflows/get_semantic_release_version.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/get_semantic_release_version.yml b/.github/workflows/get_semantic_release_version.yml index 35112967d42..2cdeae4025f 100644 --- a/.github/workflows/get_semantic_release_version.yml +++ b/.github/workflows/get_semantic_release_version.yml @@ -6,6 +6,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true @@ -16,6 +17,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true From 79a915a416617952a125358b3da8c2161267a879 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Mon, 20 Jan 2025 11:47:28 -0600 Subject: [PATCH 04/55] chore: Fix operator release workflow (v0.43-branch) (#4937) fix operator release workflow Signed-off-by: Tommy Hughes --- .github/workflows/release.yml | 8 +++++--- .releaserc.js | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 00f65929265..961c1412862 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -93,9 +93,7 @@ jobs: with: go-version: 1.22.9 - name: Build & version operator-specific release files - run: | - cd infra/feast-operator/ - make build-installer bundle + run: make -C infra/feast-operator build-installer bundle publish-web-ui-npm: needs: [ validate_version_bumps, get_dry_release_versions ] @@ -152,6 +150,10 @@ jobs: - name: Setup Helm-docs run: | brew install norwoodj/tap/helm-docs + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: 1.22.9 - name: Release (Dry Run) if: github.event.inputs.dry_run == 'true' run: | diff --git a/.releaserc.js b/.releaserc.js index f2be2440057..b972f0984cd 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -41,7 +41,7 @@ module.exports = { "verifyReleaseCmd": "./infra/scripts/validate-release.sh ${nextRelease.type} " + current_branch, // Bump all version files and build UI / update yarn.lock / helm charts - "prepareCmd": "python ./infra/scripts/release/bump_file_versions.py ${lastRelease.version} ${nextRelease.version}; make build-ui; make build-helm-docs" + "prepareCmd": "python ./infra/scripts/release/bump_file_versions.py ${lastRelease.version} ${nextRelease.version}; make build-ui; make build-helm-docs; make -C infra/feast-operator build-installer bundle" }], ["@semantic-release/release-notes-generator", { From e67106b1df628bb72254b400ab702ddecc6d6ec4 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 12:51:40 -0500 Subject: [PATCH 05/55] fix: Updated type in yaml Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 095b0f29204..7ae5d34c767 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -6,6 +6,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true @@ -16,6 +17,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true From 84e4858b691e504c4907db4a12c504bdc60b9cbe Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 12:55:53 -0500 Subject: [PATCH 06/55] fix: Updating publish.yml Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7afb648771a..3e1c032f417 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,6 +9,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true From 6891c588ed1675c77c35e1619f369f1e4ed07457 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 12:58:48 -0500 Subject: [PATCH 07/55] fix: Update type in publish_images Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_images.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index 5b0c3fb1776..c265c61fb35 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -16,6 +16,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true From 5300dd6a1ed8ce2737a36c50a86081cec56e5fbc Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 13:00:58 -0500 Subject: [PATCH 08/55] fix: Updating publish helm charts Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_helm_charts.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish_helm_charts.yml b/.github/workflows/publish_helm_charts.yml index ac895d3c646..1f3184f7b19 100644 --- a/.github/workflows/publish_helm_charts.yml +++ b/.github/workflows/publish_helm_charts.yml @@ -6,6 +6,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true @@ -16,6 +17,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true From 1c5c3d8df5b1ad8d1a736d53486bb5cc7f840148 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 13:02:22 -0500 Subject: [PATCH 09/55] fix: Updating publish java sdk Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_java_sdk.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish_java_sdk.yml b/.github/workflows/publish_java_sdk.yml index 756f1ebd21d..6492ae3c220 100644 --- a/.github/workflows/publish_java_sdk.yml +++ b/.github/workflows/publish_java_sdk.yml @@ -6,6 +6,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true @@ -16,6 +17,7 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string token: description: 'Personal Access Token' required: true From aacb68ee8409ccf7db509e2068e01824b045f8ef Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 15:19:14 -0500 Subject: [PATCH 10/55] fix: Updating environment variable in the build_wheels Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index e56550291e6..12c1ce8b57d 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -104,9 +104,10 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build image run: | + VERSION_WITHOUT_PREFIX=${{ needs.get-version.outputs.version_without_prefix }} + RELEASE_VERSION=${{ needs.get-version.outputs.release_version }} + HIGHEST_SEMVER_TAG=${{ needs.get-version.outputs.highest_semver_tag }} make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} - env: - VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }} verify-python-wheels: runs-on: ${{ matrix.os }} From 31559b7b70693d35bbcaa93afd355f81007ceb34 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 16:24:00 -0500 Subject: [PATCH 11/55] updating input parameters to build wheels Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 12c1ce8b57d..6087f6ebae1 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -1,4 +1,4 @@ -name: build_wheels +name: build wheels # Call this workflow from other workflows in the repository by specifying "uses: ./.github/workflows/build_wheels.yml" # Developers who are starting a new release should use this workflow to ensure wheels will be built correctly. @@ -7,6 +7,16 @@ on: workflow_dispatch: tags: - 'v*.*.*' + inputs: + inputs: + release_version: + description: 'The release version to use (e.g., v1.2.3)' + required: true + type: string + highest_semver_tag: + description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' + required: true + type: string workflow_call: inputs: release_version: @@ -89,6 +99,7 @@ jobs: # We add this step so the docker images can be built as part of the pre-release verification steps. build-docker-images: + name: Build Docker images runs-on: ubuntu-latest needs: get-version strategy: @@ -110,6 +121,7 @@ jobs: make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} verify-python-wheels: + name: Verify Python wheels runs-on: ${{ matrix.os }} needs: [ build-python-wheel, build-source-distribution, get-version ] strategy: From 4b60b1eba92c8206dec3ff438a6f9a50eabf6c57 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 16:24:54 -0500 Subject: [PATCH 12/55] formatting issue Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 6087f6ebae1..3d2ba66c7a5 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -8,15 +8,14 @@ on: tags: - 'v*.*.*' inputs: - inputs: - release_version: - description: 'The release version to use (e.g., v1.2.3)' - required: true - type: string - highest_semver_tag: - description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' - required: true - type: string + release_version: + description: 'The release version to use (e.g., v1.2.3)' + required: true + type: string + highest_semver_tag: + description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' + required: true + type: string workflow_call: inputs: release_version: From 1ebf24337b24275bea9e98e9ff46ea7eacb9b458 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Mon, 20 Jan 2025 15:30:38 -0600 Subject: [PATCH 13/55] chore: Fix operator release for 0.43.0 (v0.43-branch) (#4939) fix operator release for 0.43.0 Signed-off-by: Tommy Hughes --- .../feast-operator.clusterserviceversion.yaml | 12 ++++++------ infra/feast-operator/dist/install.yaml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml index bfd32b5a830..7fb9fcd1dda 100644 --- a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml +++ b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml @@ -16,10 +16,10 @@ metadata: } ] capabilities: Basic Install - createdAt: "2025-01-16T22:15:56Z" + createdAt: "2025-01-20T18:09:06Z" operators.operatorframework.io/builder: operator-sdk-v1.38.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 - name: feast-operator.v0.42.0 + name: feast-operator.v0.43.0 namespace: placeholder spec: apiservicedefinitions: {} @@ -150,10 +150,10 @@ spec: - /manager env: - name: RELATED_IMAGE_FEATURE_SERVER - value: docker.io/feastdev/feature-server:0.42.0 + value: docker.io/feastdev/feature-server:0.43.0 - name: RELATED_IMAGE_GRPC_CURL value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine - image: feastdev/feast-operator:0.42.0 + image: feastdev/feast-operator:0.43.0 livenessProbe: httpGet: path: /healthz @@ -243,8 +243,8 @@ spec: name: Feast Community url: https://lf-aidata.atlassian.net/wiki/spaces/FEAST/ relatedImages: - - image: docker.io/feastdev/feature-server:0.42.0 + - image: docker.io/feastdev/feature-server:0.43.0 name: feature-server - image: docker.io/fullstorydev/grpcurl:v1.9.1-alpine name: grpc-curl - version: 0.42.0 + version: 0.43.0 diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml index ae9a37d8c9c..bfff6a976ae 100644 --- a/infra/feast-operator/dist/install.yaml +++ b/infra/feast-operator/dist/install.yaml @@ -3580,10 +3580,10 @@ spec: - /manager env: - name: RELATED_IMAGE_FEATURE_SERVER - value: docker.io/feastdev/feature-server:0.42.0 + value: docker.io/feastdev/feature-server:0.43.0 - name: RELATED_IMAGE_GRPC_CURL value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine - image: feastdev/feast-operator:0.42.0 + image: feastdev/feast-operator:0.43.0 livenessProbe: httpGet: path: /healthz From ccaf71da185b5feb8db9aa4c5a9ea961b393f484 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 16:33:37 -0500 Subject: [PATCH 14/55] renaming args and adding more Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 3d2ba66c7a5..7be0844ed45 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -16,6 +16,12 @@ on: description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' required: true type: string + token: + description: 'Personal Access Token' + required: true + default: "" + type: string + workflow_call: inputs: release_version: @@ -26,12 +32,17 @@ on: description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' required: true type: string + token: + description: 'Personal Access Token' + required: true + default: "" + type: string jobs: get-version: uses: ./.github/workflows/get_semantic_release_version.yml with: - custom_version: ${{ github.event.inputs.custom_version }} + custom_version: ${{ github.event.inputs.release_version }} token: ${{ github.event.inputs.token }} build-python-wheel: From d9435b6b765996416b5a04de85c7874542a7b0ac Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 17:18:21 -0500 Subject: [PATCH 15/55] fix: Adding outputs to build_wheels workflow Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 7be0844ed45..4ad2d7f9daa 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -44,6 +44,11 @@ jobs: with: custom_version: ${{ github.event.inputs.release_version }} token: ${{ github.event.inputs.token }} + outputs: + release_version: ${{ steps.get-release.outputs.release_version }} + version_without_prefix: ${{ steps.get-release.outputs.version_without_prefix }} + highest_semver_tag: ${{ steps.get-release.outputs.highest_semver_tag }} + build-python-wheel: name: Build wheels From b95c0d3d366380bfc356f2a58b607d5fdef3aea9 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Mon, 20 Jan 2025 17:21:49 -0500 Subject: [PATCH 16/55] reverting changes Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 4ad2d7f9daa..2bb838da00f 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -44,11 +44,6 @@ jobs: with: custom_version: ${{ github.event.inputs.release_version }} token: ${{ github.event.inputs.token }} - outputs: - release_version: ${{ steps.get-release.outputs.release_version }} - version_without_prefix: ${{ steps.get-release.outputs.version_without_prefix }} - highest_semver_tag: ${{ steps.get-release.outputs.highest_semver_tag }} - build-python-wheel: name: Build wheels @@ -133,6 +128,7 @@ jobs: VERSION_WITHOUT_PREFIX=${{ needs.get-version.outputs.version_without_prefix }} RELEASE_VERSION=${{ needs.get-version.outputs.release_version }} HIGHEST_SEMVER_TAG=${{ needs.get-version.outputs.highest_semver_tag }} + echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION" make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} verify-python-wheels: From 7379db31d13151d250c5d993a1df5c777b924151 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 09:18:30 -0600 Subject: [PATCH 17/55] chore: Add ability to change default feature-server image during Operator deploy (v0.43-branch) (#4941) chore: Add ability to change default feature-server image during Operator deploy (#4940) Signed-off-by: Tommy Hughes --- infra/feast-operator/Makefile | 18 +++++++++++++++--- .../config/default/kustomization.yaml | 8 ++++++-- .../config/default/related_image_fs_patch.tmpl | 5 +++++ ..._patch.yaml => related_image_fs_patch.yaml} | 5 ----- .../default/related_image_grpc_patch.yaml | 5 +++++ .../controller/services/services_types.go | 4 ++++ .../internal/controller/services/util.go | 6 +++--- infra/feast-operator/test/e2e/e2e_test.go | 2 +- infra/scripts/release/files_to_bump.txt | 1 - 9 files changed, 39 insertions(+), 15 deletions(-) create mode 100644 infra/feast-operator/config/default/related_image_fs_patch.tmpl rename infra/feast-operator/config/default/{manager_related_images_patch.yaml => related_image_fs_patch.yaml} (50%) create mode 100644 infra/feast-operator/config/default/related_image_grpc_patch.yaml diff --git a/infra/feast-operator/Makefile b/infra/feast-operator/Makefile index 56f388fde65..dee7c3068b6 100644 --- a/infra/feast-operator/Makefile +++ b/infra/feast-operator/Makefile @@ -51,6 +51,7 @@ endif OPERATOR_SDK_VERSION ?= v1.38.0 # Image URL to use all building/pushing image targets IMG ?= $(IMAGE_TAG_BASE):$(VERSION) +FS_IMG ?= docker.io/feastdev/feature-server:$(VERSION) # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. ENVTEST_K8S_VERSION = 1.30.0 @@ -172,7 +173,7 @@ docker-buildx: ## Build and push docker image for the manager for cross-platform rm Dockerfile.cross .PHONY: build-installer -build-installer: manifests generate kustomize ## Generate a consolidated YAML with CRDs and deployment. +build-installer: manifests generate related-image-fs kustomize ## Generate a consolidated YAML with CRDs and deployment. mkdir -p dist cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} $(KUSTOMIZE) build config/default > dist/install.yaml @@ -192,7 +193,7 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified $(KUSTOMIZE) build config/crd | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f - .PHONY: deploy -deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. +deploy: manifests kustomize related-image-fs ## Deploy controller to the K8s cluster specified in ~/.kube/config. cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} $(KUSTOMIZE) build config/default | $(KUBECTL) apply -f - @@ -213,12 +214,14 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen ENVTEST ?= $(LOCALBIN)/setup-envtest GOLANGCI_LINT = $(LOCALBIN)/golangci-lint +ENVSUBST = $(LOCALBIN)/envsubst ## Tool Versions KUSTOMIZE_VERSION ?= v5.4.2 CONTROLLER_TOOLS_VERSION ?= v0.15.0 ENVTEST_VERSION ?= release-0.18 GOLANGCI_LINT_VERSION ?= v1.59.1 +ENVSUBST_VERSION ?= v1.4.2 .PHONY: kustomize kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary. @@ -240,6 +243,11 @@ golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary. $(GOLANGCI_LINT): $(LOCALBIN) $(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION)) +.PHONY: envsubst +envsubst: $(ENVSUBST) ## Download envsubst locally if necessary. +$(ENVSUBST): $(LOCALBIN) + $(call go-install-tool,$(ENVSUBST),github.com/a8m/envsubst/cmd/envsubst,$(ENVSUBST_VERSION)) + # go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist # $1 - target path with name of binary (ideally with version) # $2 - package url which can be installed @@ -275,7 +283,7 @@ endif endif .PHONY: bundle -bundle: manifests kustomize operator-sdk ## Generate bundle manifests and metadata, then validate generated files. +bundle: manifests kustomize related-image-fs operator-sdk ## Generate bundle manifests and metadata, then validate generated files. $(OPERATOR_SDK) generate kustomize manifests -q cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG) $(KUSTOMIZE) build config/manifests | $(OPERATOR_SDK) generate bundle $(BUNDLE_GEN_FLAGS) @@ -329,3 +337,7 @@ catalog-build: opm ## Build a catalog image. .PHONY: catalog-push catalog-push: ## Push a catalog image. $(MAKE) docker-push IMG=$(CATALOG_IMG) + +.PHONY: related-image-fs +related-image-fs: envsubst + FS_IMG=$(FS_IMG) $(ENVSUBST) < config/default/related_image_fs_patch.tmpl > config/default/related_image_fs_patch.yaml diff --git a/infra/feast-operator/config/default/kustomization.yaml b/infra/feast-operator/config/default/kustomization.yaml index 01534ae5cc8..b494dc123b2 100644 --- a/infra/feast-operator/config/default/kustomization.yaml +++ b/infra/feast-operator/config/default/kustomization.yaml @@ -28,11 +28,15 @@ resources: # [METRICS] Expose the controller manager metrics service. - metrics_service.yaml -# Uncomment the patches line if you enable Metrics, and/or are using webhooks and cert-manager + patches: -- path: manager_related_images_patch.yaml +- path: related_image_fs_patch.yaml target: kind: Deployment +- path: related_image_grpc_patch.yaml + target: + kind: Deployment +# Uncomment the patches line if you enable Metrics, and/or are using webhooks and cert-manager # [METRICS] The following patch will enable the metrics endpoint using HTTPS and the port :8443. # More info: https://book.kubebuilder.io/reference/metrics - path: manager_metrics_patch.yaml diff --git a/infra/feast-operator/config/default/related_image_fs_patch.tmpl b/infra/feast-operator/config/default/related_image_fs_patch.tmpl new file mode 100644 index 00000000000..f3508836a86 --- /dev/null +++ b/infra/feast-operator/config/default/related_image_fs_patch.tmpl @@ -0,0 +1,5 @@ +- op: replace + path: "/spec/template/spec/containers/0/env/0" + value: + name: RELATED_IMAGE_FEATURE_SERVER + value: ${FS_IMG} diff --git a/infra/feast-operator/config/default/manager_related_images_patch.yaml b/infra/feast-operator/config/default/related_image_fs_patch.yaml similarity index 50% rename from infra/feast-operator/config/default/manager_related_images_patch.yaml rename to infra/feast-operator/config/default/related_image_fs_patch.yaml index 084de876612..7abd129617c 100644 --- a/infra/feast-operator/config/default/manager_related_images_patch.yaml +++ b/infra/feast-operator/config/default/related_image_fs_patch.yaml @@ -3,8 +3,3 @@ value: name: RELATED_IMAGE_FEATURE_SERVER value: docker.io/feastdev/feature-server:0.43.0 -- op: replace - path: "/spec/template/spec/containers/0/env/1" - value: - name: RELATED_IMAGE_GRPC_CURL - value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine diff --git a/infra/feast-operator/config/default/related_image_grpc_patch.yaml b/infra/feast-operator/config/default/related_image_grpc_patch.yaml new file mode 100644 index 00000000000..5c23ece2f01 --- /dev/null +++ b/infra/feast-operator/config/default/related_image_grpc_patch.yaml @@ -0,0 +1,5 @@ +- op: replace + path: "/spec/template/spec/containers/0/env/1" + value: + name: RELATED_IMAGE_GRPC_CURL + value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine diff --git a/infra/feast-operator/internal/controller/services/services_types.go b/infra/feast-operator/internal/controller/services/services_types.go index 55a5a42e2a7..3dba6c68115 100644 --- a/infra/feast-operator/internal/controller/services/services_types.go +++ b/infra/feast-operator/internal/controller/services/services_types.go @@ -25,6 +25,10 @@ import ( ) const ( + feastServerImageVar = "RELATED_IMAGE_FEATURE_SERVER" + grpcCurlImageVar = "RELATED_IMAGE_GRPC_CURL" + grpcCurlImage = "fullstorydev/grpcurl:v1.9.1-alpine" + TmpFeatureStoreYamlEnvVar = "TMP_FEATURE_STORE_YAML_BASE64" FeatureStoreYamlCmKey = "feature_store.yaml" EphemeralPath = "/feast-data" diff --git a/infra/feast-operator/internal/controller/services/util.go b/infra/feast-operator/internal/controller/services/util.go index b39a851c14b..4b5cf45281c 100644 --- a/infra/feast-operator/internal/controller/services/util.go +++ b/infra/feast-operator/internal/controller/services/util.go @@ -172,17 +172,17 @@ func setServiceDefaultConfigs(defaultConfigs *feastdevv1alpha1.DefaultConfigs) { } func getFeatureServerImage() string { - if img, exists := os.LookupEnv("RELATED_IMAGE_FEATURE_SERVER"); exists { + if img, exists := os.LookupEnv(feastServerImageVar); exists { return img } return DefaultImage } func getGrpcCurlImage() string { - if img, exists := os.LookupEnv("RELATED_IMAGE_GRPC_CURL"); exists { + if img, exists := os.LookupEnv(grpcCurlImageVar); exists { return img } - return "fullstorydev/grpcurl:v1.9.1-alpine" + return grpcCurlImage } func checkOfflineStoreFilePersistenceType(value string) error { diff --git a/infra/feast-operator/test/e2e/e2e_test.go b/infra/feast-operator/test/e2e/e2e_test.go index e55ac0156a7..f3611dcf0d7 100644 --- a/infra/feast-operator/test/e2e/e2e_test.go +++ b/infra/feast-operator/test/e2e/e2e_test.go @@ -75,7 +75,7 @@ var _ = Describe("controller", Ordered, func() { ExpectWithOffset(1, err).NotTo(HaveOccurred()) By("deploying the controller-manager") - cmd = exec.Command("make", "deploy", fmt.Sprintf("IMG=%s", projectimage)) + cmd = exec.Command("make", "deploy", fmt.Sprintf("IMG=%s", projectimage), fmt.Sprintf("FS_IMG=%s", feastLocalImage)) _, err = utils.Run(cmd) ExpectWithOffset(1, err).NotTo(HaveOccurred()) diff --git a/infra/scripts/release/files_to_bump.txt b/infra/scripts/release/files_to_bump.txt index 0e0ac0bce6d..8dabe1104f5 100644 --- a/infra/scripts/release/files_to_bump.txt +++ b/infra/scripts/release/files_to_bump.txt @@ -14,7 +14,6 @@ infra/feast-helm-operator/Makefile 6 infra/feast-helm-operator/config/manager/kustomization.yaml 8 infra/feast-operator/Makefile 6 infra/feast-operator/config/manager/kustomization.yaml 8 -infra/feast-operator/config/default/manager_related_images_patch.yaml 5 infra/feast-operator/config/overlays/odh/params.env 1 infra/feast-operator/api/feastversion/version.go 20 java/pom.xml 38 From 9e1b4dbbb0be386a1e39780253170e05a5fd067f Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 10:19:11 -0600 Subject: [PATCH 18/55] chore: CR image no longer needed for e2e (v0.43-branch) (#4943) CR image no longer needed for e2e Signed-off-by: Tommy Hughes --- infra/feast-operator/test/e2e/test_util.go | 2 +- .../v1alpha1_default_featurestore.yaml | 9 ++------- .../v1alpha1_remote_registry_featurestore.yaml | 6 ++---- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/infra/feast-operator/test/e2e/test_util.go b/infra/feast-operator/test/e2e/test_util.go index 017690a0ec9..73c9114accb 100644 --- a/infra/feast-operator/test/e2e/test_util.go +++ b/infra/feast-operator/test/e2e/test_util.go @@ -158,7 +158,7 @@ func checkIfKubernetesServiceExists(namespace, serviceName string) error { func isFeatureStoreHavingRemoteRegistry(namespace, featureStoreName string) (bool, error) { cmd := exec.Command("kubectl", "get", "featurestore", featureStoreName, "-n", namespace, - "-o=jsonpath='{.spec.services.registry}'") + "-o=jsonpath='{.status.applied.services.registry}'") // Capture the output output, err := cmd.Output() diff --git a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml index 0252a5fecf5..3c88d71e566 100644 --- a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml +++ b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml @@ -5,10 +5,5 @@ metadata: spec: feastProject: my_project services: - onlineStore: - image: 'localhost/feastdev/feature-server:dev' - offlineStore: - image: 'localhost/feastdev/feature-server:dev' - registry: - local: - image: 'localhost/feastdev/feature-server:dev' + onlineStore: {} + offlineStore: {} diff --git a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml index 61c010f0576..9b12b78577c 100644 --- a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml +++ b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml @@ -5,10 +5,8 @@ metadata: spec: feastProject: my_project services: - onlineStore: - image: 'localhost/feastdev/feature-server:dev' - offlineStore: - image: 'localhost/feastdev/feature-server:dev' + onlineStore: {} + offlineStore: {} registry: remote: feastRef: From c8378a3eb3686179883016dec147466e1145bff5 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 11:18:56 -0600 Subject: [PATCH 19/55] chore: Fix publish, versions issue (#4944) fix publish, versions issue Signed-off-by: Tommy Hughes --- .github/workflows/publish_images.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index c265c61fb35..c225c0b24d6 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -24,16 +24,9 @@ on: type: string jobs: - get-version: - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - build-publish-docker-images: if: github.repository == 'feast-dev/feast' runs-on: ubuntu-latest - needs: [ get-version ] strategy: matrix: component: [ feature-server, feature-server-java, feature-transformation-server, feast-helm-operator, feast-operator ] @@ -41,6 +34,11 @@ jobs: MAVEN_CACHE: gs://feast-templocation-kf-feast/.m2.2020-08-19.tar REGISTRY: feastdev steps: + - id: get-version + uses: ./.github/workflows/get_semantic_release_version.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -63,17 +61,14 @@ jobs: run: gcloud info - run: gcloud auth configure-docker --quiet - name: Build image + env: + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} run: | make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} - env: - RELEASE_VERSION: ${{ needs.get-version.outputs.release_version }} - VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }} - HIGHEST_SEMVER_TAG: ${{ needs.get-version.outputs.highest_semver_tag }} - name: Push versioned images env: - RELEASE_VERSION: ${{ needs.get-version.outputs.release_version }} - VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }} - HIGHEST_SEMVER_TAG: ${{ needs.get-version.outputs.highest_semver_tag }} + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} + HIGHEST_SEMVER_TAG: ${{ steps.get-version.outputs.highest_semver_tag }} run: | make push-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} From 2fd6d1a0d7037e9800e6690f41327abb0a4a6216 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 11:26:27 -0600 Subject: [PATCH 20/55] chore: Fix publish, versions issue (#4945) fix publish, versions issue Signed-off-by: Tommy Hughes --- .github/workflows/build_wheels.yml | 30 +++++++++++++++------------- .github/workflows/publish_images.yml | 1 - 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 2bb838da00f..471cc6f3359 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -5,8 +5,6 @@ name: build wheels # Devs should check out their fork, add a tag to the last master commit on their fork, and run the release off of their fork on the added tag to ensure wheels will be built correctly. on: workflow_dispatch: - tags: - - 'v*.*.*' inputs: release_version: description: 'The release version to use (e.g., v1.2.3)' @@ -39,12 +37,6 @@ on: type: string jobs: - get-version: - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.release_version }} - token: ${{ github.event.inputs.token }} - build-python-wheel: name: Build wheels runs-on: ubuntu-latest @@ -111,13 +103,17 @@ jobs: build-docker-images: name: Build Docker images runs-on: ubuntu-latest - needs: get-version strategy: matrix: component: [ feature-server, feature-server-java, feature-transformation-server, feast-operator ] env: REGISTRY: feastdev steps: + - id: get-version + uses: ./.github/workflows/get_semantic_release_version.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -125,16 +121,16 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build image run: | - VERSION_WITHOUT_PREFIX=${{ needs.get-version.outputs.version_without_prefix }} - RELEASE_VERSION=${{ needs.get-version.outputs.release_version }} - HIGHEST_SEMVER_TAG=${{ needs.get-version.outputs.highest_semver_tag }} + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} + HIGHEST_SEMVER_TAG: ${{ steps.get-version.outputs.highest_semver_tag }} + RELEASE_VERSION=${{ steps.get-version.outputs.release_version }} echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION" make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} verify-python-wheels: name: Verify Python wheels runs-on: ${{ matrix.os }} - needs: [ build-python-wheel, build-source-distribution, get-version ] + needs: [ build-python-wheel, build-source-distribution ] strategy: matrix: os: [ ubuntu-latest, macos-13 ] @@ -153,8 +149,12 @@ jobs: else echo "Succeeded!" fi - VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }} steps: + - id: get-version + uses: ./.github/workflows/get_semantic_release_version.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - name: Setup Python id: setup-python uses: actions/setup-python@v5 @@ -185,6 +185,8 @@ jobs: run: pip install dist/*tar.gz # Validate that the feast version installed is not development and is the correct version of the tag we ran it off of. - name: Validate Feast Version + env: + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} run: | feast version if ! VERSION_OUTPUT=$(feast version); then diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index c225c0b24d6..9eaab67f6bb 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -78,4 +78,3 @@ jobs: docker tag feastdev/${{ matrix.component }}:${VERSION_WITHOUT_PREFIX} feastdev/${{ matrix.component }}:latest docker push feastdev/${{ matrix.component }}:latest fi - From 002c075f5c5c13148515493f86c2dddfb8884712 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 11:35:38 -0600 Subject: [PATCH 21/55] chore: Fix publish, versions issue (#4946) fix publish, versions issue Signed-off-by: Tommy Hughes --- .github/workflows/publish.yml | 12 +++--------- .github/workflows/publish_helm_charts.yml | 17 +++++++++-------- .github/workflows/publish_java_sdk.yml | 14 ++++++-------- .github/workflows/publish_python_sdk.yml | 23 +++++++++-------------- 4 files changed, 27 insertions(+), 39 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3e1c032f417..c8f55dcc9a9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,12 +17,6 @@ on: type: string jobs: - get-version: - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - publish-python-sdk: uses: ./.github/workflows/publish_python_sdk.yml with: @@ -31,21 +25,21 @@ jobs: build-publish-docker-images: uses: ./.github/workflows/publish_images.yml - needs: [ get-version, publish-python-sdk ] + needs: [ publish-python-sdk ] with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} publish-helm-charts: uses: ./.github/workflows/publish_helm_charts.yml - needs: [ get-version, publish-python-sdk ] + needs: [ publish-python-sdk ] with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} publish-java-sdk: uses: ./.github/workflows/publish_java_sdk.yml - needs: [ get-version, publish-python-sdk ] + needs: [ publish-python-sdk ] with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} diff --git a/.github/workflows/publish_helm_charts.yml b/.github/workflows/publish_helm_charts.yml index 1f3184f7b19..3a4b9eb002a 100644 --- a/.github/workflows/publish_helm_charts.yml +++ b/.github/workflows/publish_helm_charts.yml @@ -25,20 +25,17 @@ on: type: string jobs: - get-version: - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - publish-helm-charts: if: github.repository == 'feast-dev/feast' runs-on: ubuntu-latest - needs: get-version env: HELM_VERSION: v3.8.0 - VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }} steps: + - id: get-version + uses: ./.github/workflows/get_semantic_release_version.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - uses: actions/checkout@v4 - name: Authenticate to Google Cloud uses: 'google-github-actions/auth@v1' @@ -56,7 +53,11 @@ jobs: - name: Validate Helm chart prior to publishing run: ./infra/scripts/helm/validate-helm-chart-publish.sh - name: Validate all version consistency + env: + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} run: ./infra/scripts/helm/validate-helm-chart-versions.sh $VERSION_WITHOUT_PREFIX - name: Publish Helm charts + env: + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} run: ./infra/scripts/helm/push-helm-charts.sh $VERSION_WITHOUT_PREFIX diff --git a/.github/workflows/publish_java_sdk.yml b/.github/workflows/publish_java_sdk.yml index 6492ae3c220..d23260c1fa7 100644 --- a/.github/workflows/publish_java_sdk.yml +++ b/.github/workflows/publish_java_sdk.yml @@ -26,18 +26,16 @@ on: jobs: - get-version: - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - publish-java-sdk: if: github.repository == 'feast-dev/feast' container: maven:3.6-jdk-11 runs-on: ubuntu-latest - needs: [ get-version ] steps: + - id: get-version + uses: ./.github/workflows/get_semantic_release_version.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - uses: actions/checkout@v4 with: submodules: 'true' @@ -59,7 +57,7 @@ jobs: ${{ runner.os }}-it-maven- - name: Publish java sdk env: - VERSION_WITHOUT_PREFIX: ${{ needs.get-version.outputs.version_without_prefix }} + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} MAVEN_SETTINGS: ${{ secrets.MAVEN_SETTINGS }} diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 7ae5d34c767..ec00ea41b14 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -25,24 +25,19 @@ on: type: string jobs: - get-version: - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - - build_wheels: - uses: ./.github/workflows/build_wheels.yml - needs: get-version - with: - release_version: ${{ needs.get-version.outputs.release_version }} - highest_semver_tag: ${{ needs.get-version.outputs.highest_semver_tag }} - publish-python-sdk: if: github.repository == 'feast-dev/feast' runs-on: ubuntu-latest - needs: [ get-version, build_wheels ] steps: + - id: get-version + uses: ./.github/workflows/get_semantic_release_version.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} + - uses: ./.github/workflows/build_wheels.yml + with: + release_version: ${{ steps.get-version.outputs.release_version }} + highest_semver_tag: ${{ steps.get-version.outputs.highest_semver_tag }} - uses: actions/download-artifact@v4.1.7 with: name: python-wheels From c5b2085f4c33b5de5f1384fc80f6d8dd3e976f8f Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 12:09:36 -0600 Subject: [PATCH 22/55] chore: Fix publish, versions issue (#4947) fix publish, versions issue Signed-off-by: Tommy Hughes --- .github/workflows/build_wheels.yml | 35 ++++++++++++----------- .github/workflows/publish_helm_charts.yml | 2 +- .github/workflows/publish_images.yml | 2 +- .github/workflows/publish_java_sdk.yml | 6 ++-- .github/workflows/publish_python_sdk.yml | 1 + 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 471cc6f3359..0d804587a9c 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -14,6 +14,10 @@ on: description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' required: true type: string + version_without_prefix: + description: 'The release version to use without "v" (e.g., 1.2.3)' + required: true + type: string token: description: 'Personal Access Token' required: true @@ -30,6 +34,10 @@ on: description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' required: true type: string + version_without_prefix: + description: 'The release version to use without "v" (e.g., 1.2.3)' + required: true + type: string token: description: 'Personal Access Token' required: true @@ -55,9 +63,11 @@ jobs: - name: Build UI run: make build-ui - name: Build wheels + env: + VERSION: ${{ github.event.inputs.release_version }} run: | git fetch --tags - git checkout v0.42.0 + git checkout ${VERSION} python -m pip install build python -m build --wheel --outdir wheelhouse/ - uses: actions/upload-artifact@v4 @@ -82,10 +92,12 @@ jobs: node-version-file: './ui/.nvmrc' registry-url: 'https://registry.npmjs.org' - name: Build and install dependencies + env: + VERSION: ${{ github.event.inputs.release_version }} # There's a `git restore` in here because `make install-go-ci-dependencies` is actually messing up go.mod & go.sum. run: | git fetch --tags - git checkout v0.42.0 + git checkout ${VERSION} pip install -U pip setuptools wheel twine make build-ui git status @@ -103,17 +115,13 @@ jobs: build-docker-images: name: Build Docker images runs-on: ubuntu-latest + needs: [ build-python-wheel, build-source-distribution ] strategy: matrix: component: [ feature-server, feature-server-java, feature-transformation-server, feast-operator ] env: REGISTRY: feastdev steps: - - id: get-version - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -121,9 +129,9 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Build image run: | - VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} - HIGHEST_SEMVER_TAG: ${{ steps.get-version.outputs.highest_semver_tag }} - RELEASE_VERSION=${{ steps.get-version.outputs.release_version }} + VERSION_WITHOUT_PREFIX: ${{ github.event.inputs.version_without_prefix }} + HIGHEST_SEMVER_TAG: ${{ github.event.inputs.highest_semver_tag }} + RELEASE_VERSION=${{ github.event.inputs.release_version }} echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION" make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} @@ -150,11 +158,6 @@ jobs: echo "Succeeded!" fi steps: - - id: get-version - uses: ./.github/workflows/get_semantic_release_version.yml - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - name: Setup Python id: setup-python uses: actions/setup-python@v5 @@ -186,7 +189,7 @@ jobs: # Validate that the feast version installed is not development and is the correct version of the tag we ran it off of. - name: Validate Feast Version env: - VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} + VERSION_WITHOUT_PREFIX: ${{ github.event.inputs.version_without_prefix }} run: | feast version if ! VERSION_OUTPUT=$(feast version); then diff --git a/.github/workflows/publish_helm_charts.yml b/.github/workflows/publish_helm_charts.yml index 3a4b9eb002a..c427e4307cc 100644 --- a/.github/workflows/publish_helm_charts.yml +++ b/.github/workflows/publish_helm_charts.yml @@ -31,12 +31,12 @@ jobs: env: HELM_VERSION: v3.8.0 steps: + - uses: actions/checkout@v4 - id: get-version uses: ./.github/workflows/get_semantic_release_version.yml with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} - - uses: actions/checkout@v4 - name: Authenticate to Google Cloud uses: 'google-github-actions/auth@v1' with: diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index 9eaab67f6bb..a3ca9a63ff9 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -34,12 +34,12 @@ jobs: MAVEN_CACHE: gs://feast-templocation-kf-feast/.m2.2020-08-19.tar REGISTRY: feastdev steps: + - uses: actions/checkout@v4 - id: get-version uses: ./.github/workflows/get_semantic_release_version.yml with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} - - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx diff --git a/.github/workflows/publish_java_sdk.yml b/.github/workflows/publish_java_sdk.yml index d23260c1fa7..de909cb5eb7 100644 --- a/.github/workflows/publish_java_sdk.yml +++ b/.github/workflows/publish_java_sdk.yml @@ -31,14 +31,14 @@ jobs: container: maven:3.6-jdk-11 runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 + with: + submodules: 'true' - id: get-version uses: ./.github/workflows/get_semantic_release_version.yml with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} - - uses: actions/checkout@v4 - with: - submodules: 'true' - name: Set up JDK 11 uses: actions/setup-java@v1 with: diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index ec00ea41b14..5051c42ae2a 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -38,6 +38,7 @@ jobs: with: release_version: ${{ steps.get-version.outputs.release_version }} highest_semver_tag: ${{ steps.get-version.outputs.highest_semver_tag }} + version_without_prefix: ${{ steps.get-version.outputs.version_without_prefix }} - uses: actions/download-artifact@v4.1.7 with: name: python-wheels From ca18b6e322991922ad0fe99affa2c8c12dc60387 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 12:27:02 -0600 Subject: [PATCH 23/55] fix publish, versions issue (#4948) Signed-off-by: Tommy Hughes --- .github/workflows/build_wheels.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 0d804587a9c..c89ae3ae1a2 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -128,10 +128,10 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Build image - run: | + env: VERSION_WITHOUT_PREFIX: ${{ github.event.inputs.version_without_prefix }} - HIGHEST_SEMVER_TAG: ${{ github.event.inputs.highest_semver_tag }} - RELEASE_VERSION=${{ github.event.inputs.release_version }} + RELEASE_VERSION: ${{ github.event.inputs.release_version }} + run: | echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION" make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} From 3ee27ee45c5000ee6e201d7acac59ff626f3df02 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Tue, 21 Jan 2025 13:42:22 -0500 Subject: [PATCH 24/55] fix: adding checkout to publish sdk Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 5051c42ae2a..afacb83a36c 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -29,6 +29,7 @@ jobs: if: github.repository == 'feast-dev/feast' runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 - id: get-version uses: ./.github/workflows/get_semantic_release_version.yml with: From 8196d78526d084dc0f662765459c0bbc2b47b84d Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Tue, 21 Jan 2025 13:33:59 -0600 Subject: [PATCH 25/55] chore: Change get version workflow to an action (#4951) change get version workflow to an action Signed-off-by: Tommy Hughes --- .../get-semantic-release-version/action.yml | 88 +++++++++++++++++ .../get_semantic_release_version.yml | 96 ------------------- .github/workflows/publish_helm_charts.yml | 4 +- .github/workflows/publish_images.yml | 4 +- .github/workflows/publish_java_sdk.yml | 2 +- .github/workflows/publish_python_sdk.yml | 4 +- 6 files changed, 98 insertions(+), 100 deletions(-) create mode 100644 .github/actions/get-semantic-release-version/action.yml delete mode 100644 .github/workflows/get_semantic_release_version.yml diff --git a/.github/actions/get-semantic-release-version/action.yml b/.github/actions/get-semantic-release-version/action.yml new file mode 100644 index 00000000000..baa90527959 --- /dev/null +++ b/.github/actions/get-semantic-release-version/action.yml @@ -0,0 +1,88 @@ +name: Get semantic release version +description: "" +inputs: + custom_version: # Optional input for a custom version + description: "Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing" + required: false + token: + description: "Personal Access Token" + required: true + default: "" +outputs: + release_version: + description: "The release version to use (e.g., v1.2.3)" + value: ${{ steps.get_release_version.outputs.release_version }} + version_without_prefix: + description: "The release version to use without 'v' (e.g., 1.2.3)" + value: ${{ steps.get_release_version_without_prefix.outputs.version_without_prefix }} + highest_semver_tag: + description: "The highest semantic version tag without the 'v' prefix (e.g., 1.2.3)" + value: ${{ steps.get_highest_semver.outputs.highest_semver_tag }} +runs: + using: composite + steps: + - uses: actions/checkout@v4 + - name: Get release version + id: get_release_version + shell: bash + env: + GITHUB_TOKEN: ${{ inputs.token }} + GIT_AUTHOR_NAME: feast-ci-bot + GIT_AUTHOR_EMAIL: feast-ci-bot@willem.co + GIT_COMMITTER_NAME: feast-ci-bot + GIT_COMMITTER_EMAIL: feast-ci-bot@willem.co + run: | + if [[ -n "${{ inputs.custom_version }}" ]]; then + VERSION_REGEX="^v[0-9]+\.[0-9]+\.[0-9]+$" + echo "Using custom version: ${{ inputs.custom_version }}" + if [[ ! "${{ inputs.custom_version }}" =~ $VERSION_REGEX ]]; then + echo "Error: custom_version must match semantic versioning (e.g., v1.2.3)." + exit 1 + fi + echo "::set-output name=release_version::${{ inputs.custom_version }}" + elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then + echo "Using tag reference: ${GITHUB_REF#refs/tags/}" + echo "::set-output name=release_version::${GITHUB_REF#refs/tags/}" + else + echo "Defaulting to branch name: ${GITHUB_REF#refs/heads/}" + echo "::set-output name=release_version::${GITHUB_REF#refs/heads/}" + fi + - name: Get release version without prefix + id: get_release_version_without_prefix + shell: bash + env: + RELEASE_VERSION: ${{ steps.get_release_version.outputs.release_version }} + run: | + if [[ "${RELEASE_VERSION}" == v* ]]; then + echo "::set-output name=version_without_prefix::${RELEASE_VERSION:1}" + else + echo "::set-output name=version_without_prefix::${RELEASE_VERSION}" + fi + - name: Get highest semver + id: get_highest_semver + shell: bash + env: + RELEASE_VERSION: ${{ steps.get_release_version.outputs.release_version }} + run: | + if [[ -n "${{ inputs.custom_version }}" ]]; then + HIGHEST_SEMVER_TAG="${{ inputs.custom_version }}" + echo "::set-output name=highest_semver_tag::$HIGHEST_SEMVER_TAG" + echo "Using custom version as highest semantic version: $HIGHEST_SEMVER_TAG" + else + source infra/scripts/setup-common-functions.sh + SEMVER_REGEX='^v[0-9]+\.[0-9]+\.[0-9]+(-([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?$' + if echo "${RELEASE_VERSION}" | grep -P "$SEMVER_REGEX" &>/dev/null ; then + echo ::set-output name=highest_semver_tag::$(get_tag_release -m) + echo "Using infra/scripts/setup-common-functions.sh to generate highest semantic version: $HIGHEST_SEMVER_TAG" + fi + fi + - name: Check output + shell: bash + env: + RELEASE_VERSION: ${{ steps.get_release_version.outputs.release_version }} + VERSION_WITHOUT_PREFIX: ${{ steps.get_release_version_without_prefix.outputs.version_without_prefix }} + HIGHEST_SEMVER_TAG: ${{ steps.get_highest_semver.outputs.highest_semver_tag }} + run: | + echo $RELEASE_VERSION + echo $VERSION_WITHOUT_PREFIX + echo $HIGHEST_SEMVER_TAG \ No newline at end of file diff --git a/.github/workflows/get_semantic_release_version.yml b/.github/workflows/get_semantic_release_version.yml deleted file mode 100644 index 2cdeae4025f..00000000000 --- a/.github/workflows/get_semantic_release_version.yml +++ /dev/null @@ -1,96 +0,0 @@ -name: Get semantic release version - -on: - workflow_dispatch: # Allows manual trigger of the workflow - inputs: - custom_version: # Optional input for a custom version - description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' - required: false - type: string - token: - description: 'Personal Access Token' - required: true - default: "" - type: string - workflow_call: # Allows trigger of the workflow from another workflow - inputs: - custom_version: # Optional input for a custom version - description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' - required: false - type: string - token: - description: 'Personal Access Token' - required: true - default: "" - type: string - -jobs: - get-version: - if: github.repository == 'feast-dev/feast' - runs-on: ubuntu-latest - env: - GITHUB_TOKEN: ${{ github.event.inputs.token }} - GIT_AUTHOR_NAME: feast-ci-bot - GIT_AUTHOR_EMAIL: feast-ci-bot@willem.co - GIT_COMMITTER_NAME: feast-ci-bot - GIT_COMMITTER_EMAIL: feast-ci-bot@willem.co - outputs: - release_version: ${{ steps.get_release_version.outputs.release_version }} - version_without_prefix: ${{ steps.get_release_version_without_prefix.outputs.version_without_prefix }} - highest_semver_tag: ${{ steps.get_highest_semver.outputs.highest_semver_tag }} - steps: - - uses: actions/checkout@v4 - - name: Get release version - id: get_release_version - run: | - if [[ -n "${{ github.event.inputs.custom_version }}" ]]; then - VERSION_REGEX="^v[0-9]+\.[0-9]+\.[0-9]+$" - echo "Using custom version: ${{ github.event.inputs.custom_version }}" - if [[ ! "${{ github.event.inputs.custom_version }}" =~ $VERSION_REGEX ]]; then - echo "Error: custom_version must match semantic versioning (e.g., v1.2.3)." - exit 1 - fi - echo "::set-output name=release_version::${{ github.event.inputs.custom_version }}" - elif [[ "${GITHUB_REF}" == refs/tags/* ]]; then - echo "Using tag reference: ${GITHUB_REF#refs/tags/}" - echo "::set-output name=release_version::${GITHUB_REF#refs/tags/}" - else - echo "Defaulting to branch name: ${GITHUB_REF#refs/heads/}" - echo "::set-output name=release_version::${GITHUB_REF#refs/heads/}" - fi - - name: Get release version without prefix - id: get_release_version_without_prefix - env: - RELEASE_VERSION: ${{ steps.get_release_version.outputs.release_version }} - run: | - if [[ "${RELEASE_VERSION}" == v* ]]; then - echo "::set-output name=version_without_prefix::${RELEASE_VERSION:1}" - else - echo "::set-output name=version_without_prefix::${RELEASE_VERSION}" - fi - - name: Get highest semver - id: get_highest_semver - env: - RELEASE_VERSION: ${{ steps.get_release_version.outputs.release_version }} - run: | - if [[ -n "${{ github.event.inputs.custom_version }}" ]]; then - HIGHEST_SEMVER_TAG="${{ github.event.inputs.custom_version }}" - echo "::set-output name=highest_semver_tag::$HIGHEST_SEMVER_TAG" - echo "Using custom version as highest semantic version: $HIGHEST_SEMVER_TAG" - else - source infra/scripts/setup-common-functions.sh - SEMVER_REGEX='^v[0-9]+\.[0-9]+\.[0-9]+(-([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?$' - if echo "${RELEASE_VERSION}" | grep -P "$SEMVER_REGEX" &>/dev/null ; then - echo ::set-output name=highest_semver_tag::$(get_tag_release -m) - echo "Using infra/scripts/setup-common-functions.sh to generate highest semantic version: $HIGHEST_SEMVER_TAG" - fi - fi - - name: Check output - env: - RELEASE_VERSION: ${{ steps.get_release_version.outputs.release_version }} - VERSION_WITHOUT_PREFIX: ${{ steps.get_release_version_without_prefix.outputs.version_without_prefix }} - HIGHEST_SEMVER_TAG: ${{ steps.get_highest_semver.outputs.highest_semver_tag }} - run: | - echo $RELEASE_VERSION - echo $VERSION_WITHOUT_PREFIX - echo $HIGHEST_SEMVER_TAG \ No newline at end of file diff --git a/.github/workflows/publish_helm_charts.yml b/.github/workflows/publish_helm_charts.yml index c427e4307cc..9d28e2efd2f 100644 --- a/.github/workflows/publish_helm_charts.yml +++ b/.github/workflows/publish_helm_charts.yml @@ -32,8 +32,10 @@ jobs: HELM_VERSION: v3.8.0 steps: - uses: actions/checkout@v4 + with: + submodules: 'true' - id: get-version - uses: ./.github/workflows/get_semantic_release_version.yml + uses: ./.github/actions/get-semantic-release-version with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} diff --git a/.github/workflows/publish_images.yml b/.github/workflows/publish_images.yml index a3ca9a63ff9..f605fb20df1 100644 --- a/.github/workflows/publish_images.yml +++ b/.github/workflows/publish_images.yml @@ -35,8 +35,10 @@ jobs: REGISTRY: feastdev steps: - uses: actions/checkout@v4 + with: + submodules: 'true' - id: get-version - uses: ./.github/workflows/get_semantic_release_version.yml + uses: ./.github/actions/get-semantic-release-version with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} diff --git a/.github/workflows/publish_java_sdk.yml b/.github/workflows/publish_java_sdk.yml index de909cb5eb7..f89c384b126 100644 --- a/.github/workflows/publish_java_sdk.yml +++ b/.github/workflows/publish_java_sdk.yml @@ -35,7 +35,7 @@ jobs: with: submodules: 'true' - id: get-version - uses: ./.github/workflows/get_semantic_release_version.yml + uses: ./.github/actions/get-semantic-release-version with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index afacb83a36c..5866eba4792 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -30,8 +30,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + submodules: 'true' - id: get-version - uses: ./.github/workflows/get_semantic_release_version.yml + uses: ./.github/actions/get-semantic-release-version with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} From 301ef9a5353749ba0deebd2eb86f746805dd229d Mon Sep 17 00:00:00 2001 From: lokeshrangineni <19699092+lokeshrangineni@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:09:08 -0500 Subject: [PATCH 26/55] fix: Release Fix - Added the workflow_call element in missing workflows (#4954) Added the workflow_call element in all the workflows wherever there is a workflow_dispatch element to see if that fixes the problem to be able to call the workflow from another workflow. Signed-off-by: lrangine <19699092+lokeshrangineni@users.noreply.github.com> --- .github/workflows/publish.yml | 11 +++++++++++ .github/workflows/release.yml | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c8f55dcc9a9..fb31cb0e8ad 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,6 +15,17 @@ on: required: true default: "" type: string + workflow_call: # Allows trigger the workflow from other workflow + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + type: string + token: + description: 'Personal Access Token' + required: true + default: "" + type: string jobs: publish-python-sdk: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 961c1412862..5e95950cbeb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,6 +18,23 @@ on: required: true default: true type: boolean + workflow_call: + inputs: + dry_run: + description: 'Dry Run' + required: true + default: true + type: boolean + token: + description: 'Personal Access Token' + required: true + default: "" + type: string + publish_ui: + description: 'Publish to NPM?' + required: true + default: true + type: boolean jobs: get_dry_release_versions: From 44ec146973740920b3ade32b16a163a342da315b Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Wed, 22 Jan 2025 10:55:50 -0600 Subject: [PATCH 27/55] chore: Build wheels fix (#4957) dev Signed-off-by: Tommy Hughes --- .github/workflows/build_wheels.yml | 67 +++++++++++++----------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index c89ae3ae1a2..d66915c71a6 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -4,40 +4,11 @@ name: build wheels # Developers who are starting a new release should use this workflow to ensure wheels will be built correctly. # Devs should check out their fork, add a tag to the last master commit on their fork, and run the release off of their fork on the added tag to ensure wheels will be built correctly. on: - workflow_dispatch: + workflow_dispatch: # Allows manual trigger of the workflow inputs: - release_version: - description: 'The release version to use (e.g., v1.2.3)' - required: true - type: string - highest_semver_tag: - description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' - required: true - type: string - version_without_prefix: - description: 'The release version to use without "v" (e.g., 1.2.3)' - required: true - type: string - token: - description: 'Personal Access Token' - required: true - default: "" - type: string - - workflow_call: - inputs: - release_version: - description: 'The release version to use (e.g., v1.2.3)' - required: true - type: string - highest_semver_tag: - description: 'The highest semantic version tag without the "v" prefix (e.g., 1.2.3)' - required: true - type: string - version_without_prefix: - description: 'The release version to use without "v" (e.g., 1.2.3)' - required: true - type: string + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false token: description: 'Personal Access Token' required: true @@ -62,9 +33,14 @@ jobs: registry-url: 'https://registry.npmjs.org' - name: Build UI run: make build-ui + - id: get-version + uses: ./.github/actions/get-semantic-release-version + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - name: Build wheels env: - VERSION: ${{ github.event.inputs.release_version }} + VERSION: ${{ steps.get-version.outputs.release_version }} run: | git fetch --tags git checkout ${VERSION} @@ -91,9 +67,14 @@ jobs: with: node-version-file: './ui/.nvmrc' registry-url: 'https://registry.npmjs.org' + - id: get-version + uses: ./.github/actions/get-semantic-release-version + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - name: Build and install dependencies env: - VERSION: ${{ github.event.inputs.release_version }} + VERSION: ${{ steps.get-version.outputs.release_version }} # There's a `git restore` in here because `make install-go-ci-dependencies` is actually messing up go.mod & go.sum. run: | git fetch --tags @@ -127,10 +108,15 @@ jobs: uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 + - id: get-version + uses: ./.github/actions/get-semantic-release-version + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - name: Build image env: - VERSION_WITHOUT_PREFIX: ${{ github.event.inputs.version_without_prefix }} - RELEASE_VERSION: ${{ github.event.inputs.release_version }} + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} + RELEASE_VERSION: ${{ steps.get-version.outputs.release_version }} run: | echo "Building docker image for ${{ matrix.component }} with version $VERSION_WITHOUT_PREFIX and release version $RELEASE_VERSION" make build-${{ matrix.component }}-docker REGISTRY=${REGISTRY} VERSION=${VERSION_WITHOUT_PREFIX} @@ -187,9 +173,14 @@ jobs: if: ${{ matrix.from-source }} run: pip install dist/*tar.gz # Validate that the feast version installed is not development and is the correct version of the tag we ran it off of. + - id: get-version + uses: ./.github/actions/get-semantic-release-version + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} - name: Validate Feast Version env: - VERSION_WITHOUT_PREFIX: ${{ github.event.inputs.version_without_prefix }} + VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }} run: | feast version if ! VERSION_OUTPUT=$(feast version); then From e93d164d8151eac1a3e1766637dae5b11b6eba4b Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Wed, 22 Jan 2025 11:12:52 -0600 Subject: [PATCH 28/55] chore: Fix python-sdk workflow (#4958) dev Signed-off-by: Tommy Hughes --- .github/workflows/publish_python_sdk.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 5866eba4792..ab6f97873dd 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -25,23 +25,20 @@ on: type: string jobs: + build-wheels: + uses: ./.github/workflows/build_wheels.yml + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} + publish-python-sdk: if: github.repository == 'feast-dev/feast' runs-on: ubuntu-latest + needs: [ build-wheels ] steps: - uses: actions/checkout@v4 with: submodules: 'true' - - id: get-version - uses: ./.github/actions/get-semantic-release-version - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} - - uses: ./.github/workflows/build_wheels.yml - with: - release_version: ${{ steps.get-version.outputs.release_version }} - highest_semver_tag: ${{ steps.get-version.outputs.highest_semver_tag }} - version_without_prefix: ${{ steps.get-version.outputs.version_without_prefix }} - uses: actions/download-artifact@v4.1.7 with: name: python-wheels From 922bd65d116e411e878fd9cbea1a05f63755eac0 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 12:23:48 -0500 Subject: [PATCH 29/55] fix: adding type and workflow_call to build_wheels.yml Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index d66915c71a6..fced23360d7 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -9,6 +9,18 @@ on: custom_version: # Optional input for a custom version description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' required: false + type: string + token: + description: 'Personal Access Token' + required: true + default: "" + type: string + workflow_call: + inputs: + custom_version: # Optional input for a custom version + description: 'Custom version to publish (e.g., v1.2.3) -- only edit if you know what you are doing' + required: false + type: string token: description: 'Personal Access Token' required: true From b502f46f9f90b919d9c8a57d9bdd7c1512a27452 Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Wed, 22 Jan 2025 12:08:06 -0600 Subject: [PATCH 30/55] chore: Remove checkout from get-version action (#4959) dev Signed-off-by: Tommy Hughes --- .github/actions/get-semantic-release-version/action.yml | 1 - .github/workflows/build_wheels.yml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/get-semantic-release-version/action.yml b/.github/actions/get-semantic-release-version/action.yml index baa90527959..89f6a8f81c1 100644 --- a/.github/actions/get-semantic-release-version/action.yml +++ b/.github/actions/get-semantic-release-version/action.yml @@ -21,7 +21,6 @@ outputs: runs: using: composite steps: - - uses: actions/checkout@v4 - name: Get release version id: get_release_version shell: bash diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index fced23360d7..62627334614 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -156,6 +156,7 @@ jobs: echo "Succeeded!" fi steps: + - uses: actions/checkout@v4 - name: Setup Python id: setup-python uses: actions/setup-python@v5 From 33725c3b52a72a2f11c7b996959450e80575eddf Mon Sep 17 00:00:00 2001 From: Tommy Hughes IV Date: Wed, 22 Jan 2025 12:29:28 -0600 Subject: [PATCH 31/55] chore: Fixing build wheels pre-release image build (#4960) dev Signed-off-by: Tommy Hughes --- .github/workflows/build_wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 62627334614..60c1d3fcf04 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -111,7 +111,7 @@ jobs: needs: [ build-python-wheel, build-source-distribution ] strategy: matrix: - component: [ feature-server, feature-server-java, feature-transformation-server, feast-operator ] + component: [ feature-server-dev, feature-server-java, feature-transformation-server, feast-operator ] env: REGISTRY: feastdev steps: From f392c737b6893b4cc92f409ef23e168c694560eb Mon Sep 17 00:00:00 2001 From: Francisco Arceo Date: Wed, 22 Jan 2025 13:58:11 -0500 Subject: [PATCH 32/55] fix: Updating pypi upload to use legacy repo url (#4962) Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index ab6f97873dd..cf33b47dc39 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -45,5 +45,6 @@ jobs: path: dist - uses: pypa/gh-action-pypi-publish@v1.4.2 with: + repository: https://upload.pypi.org/legacy/ user: __token__ password: ${{ secrets.PYPI_PASSWORD }} From 6e80c262df4990157063aede8daec33aeb20f5fe Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 14:14:59 -0500 Subject: [PATCH 33/55] fix: Updating repostiry to repostory url Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index cf33b47dc39..61603c2b6e6 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -45,6 +45,6 @@ jobs: path: dist - uses: pypa/gh-action-pypi-publish@v1.4.2 with: - repository: https://upload.pypi.org/legacy/ + repository-url: https://upload.pypi.org/legacy/ user: __token__ password: ${{ secrets.PYPI_PASSWORD }} From daf2236e7b5ba71445c57f7ce4d942823515d647 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 14:29:55 -0500 Subject: [PATCH 34/55] converting to dash to see if that works Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 61603c2b6e6..f09ea72601e 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -45,6 +45,6 @@ jobs: path: dist - uses: pypa/gh-action-pypi-publish@v1.4.2 with: - repository-url: https://upload.pypi.org/legacy/ + repository_url: https://upload.pypi.org/legacy/ user: __token__ password: ${{ secrets.PYPI_PASSWORD }} From cf5d4ab24fb5682ae0f52c5100ed81a8af804284 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 14:44:34 -0500 Subject: [PATCH 35/55] fix: Updating pypi publish action and adding name Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index f09ea72601e..af1193a029e 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -43,8 +43,8 @@ jobs: with: name: python-wheels path: dist - - uses: pypa/gh-action-pypi-publish@v1.4.2 + - name: Publish package to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 with: - repository_url: https://upload.pypi.org/legacy/ - user: __token__ password: ${{ secrets.PYPI_PASSWORD }} + repository_url: https://upload.pypi.org/legacy/ From 6081fd24b7331e854a5c75bd114e01b534bfa6f9 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 15:00:59 -0500 Subject: [PATCH 36/55] fix: moving back to kebab case Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index af1193a029e..1e86924900d 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -47,4 +47,4 @@ jobs: uses: pypa/gh-action-pypi-publish@release/v1 with: password: ${{ secrets.PYPI_PASSWORD }} - repository_url: https://upload.pypi.org/legacy/ + repository-url: https://upload.pypi.org/legacy/ \ No newline at end of file From cfd345f902939ce2ad2205037f66587f673a483b Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 15:20:10 -0500 Subject: [PATCH 37/55] fix: Trying to hardcode gh-action version Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 1e86924900d..c3e1386fd43 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -44,7 +44,7 @@ jobs: name: python-wheels path: dist - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 + uses: pypa/gh-action-pypi-publish@v1.4.2 with: password: ${{ secrets.PYPI_PASSWORD }} repository-url: https://upload.pypi.org/legacy/ \ No newline at end of file From 4b83bd774f63e79e689637b1034627bd00ef0a0c Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 15:33:28 -0500 Subject: [PATCH 38/55] trying new version with oidc false Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index c3e1386fd43..f23582c1e2f 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -44,7 +44,8 @@ jobs: name: python-wheels path: dist - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@v1.4.2 + uses: pypa/gh-action-pypi-publish@release/v1 with: + oidc: false password: ${{ secrets.PYPI_PASSWORD }} repository-url: https://upload.pypi.org/legacy/ \ No newline at end of file From 62f4c52332f847dba4827566add6b7c46bc0b928 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 15:39:56 -0500 Subject: [PATCH 39/55] trying without attestations Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index f23582c1e2f..6197cce6d08 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -46,6 +46,6 @@ jobs: - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: - oidc: false + attestations: false password: ${{ secrets.PYPI_PASSWORD }} repository-url: https://upload.pypi.org/legacy/ \ No newline at end of file From 308b86498301854d5dfb7fe2a5bc39fc1711406e Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 15:56:36 -0500 Subject: [PATCH 40/55] reverting again to old action and removing checkout action Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 6197cce6d08..9deb8779dfd 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -36,16 +36,12 @@ jobs: runs-on: ubuntu-latest needs: [ build-wheels ] steps: - - uses: actions/checkout@v4 - with: - submodules: 'true' - uses: actions/download-artifact@v4.1.7 with: name: python-wheels path: dist - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 + uses: pypa/gh-action-pypi-publish@v1.4.2 with: - attestations: false password: ${{ secrets.PYPI_PASSWORD }} - repository-url: https://upload.pypi.org/legacy/ \ No newline at end of file + repository_url: https://upload.pypi.org/legacy/ \ No newline at end of file From 420ffbba723c5104110a44472dabbccb73fbb5f1 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 16:19:37 -0500 Subject: [PATCH 41/55] reverting code to existing master without actions checkout Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 9deb8779dfd..3cb713a6afa 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -43,5 +43,5 @@ jobs: - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@v1.4.2 with: - password: ${{ secrets.PYPI_PASSWORD }} - repository_url: https://upload.pypi.org/legacy/ \ No newline at end of file + user: __token__ + password: ${{ secrets.PYPI_PASSWORD }} \ No newline at end of file From c8c43125b9085855ebb13c607a56aec87c9dafb5 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 20:26:04 -0500 Subject: [PATCH 42/55] logging token length to validate it and adding quotes to password Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 3cb713a6afa..b9d02c34f30 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -40,8 +40,12 @@ jobs: with: name: python-wheels path: dist + - name: Logging secret length + env: + PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }} + run: echo "The length of the secret is ${#PYPI_TOKEN}" - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@v1.4.2 with: user: __token__ - password: ${{ secrets.PYPI_PASSWORD }} \ No newline at end of file + password: '${{ secrets.PYPI_PASSWORD }}' \ No newline at end of file From 3aa873b05f34b44db0d875f0614c54d4ac508d6c Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 21:42:59 -0500 Subject: [PATCH 43/55] adding logging to the build wheels to see if secret is present there Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 60c1d3fcf04..33e5c73c64d 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -53,7 +53,9 @@ jobs: - name: Build wheels env: VERSION: ${{ steps.get-version.outputs.release_version }} + PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }} run: | + echo "The length of the secret is ${#PYPI_TOKEN}" git fetch --tags git checkout ${VERSION} python -m pip install build From 5927dd486a5cecc279afbaf4d200172e38e62a16 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:05:21 -0500 Subject: [PATCH 44/55] adding secrets to jobs keyword Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 4 ++-- .github/workflows/publish.yml | 2 ++ .github/workflows/publish_python_sdk.yml | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 33e5c73c64d..d66f4db6381 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -53,9 +53,9 @@ jobs: - name: Build wheels env: VERSION: ${{ steps.get-version.outputs.release_version }} - PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }} + PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - echo "The length of the secret is ${#PYPI_TOKEN}" + echo "The length of the secret is ${#PYPI_PASSWORD}" git fetch --tags git checkout ${VERSION} python -m pip install build diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index fb31cb0e8ad..d28e3685635 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,6 +33,8 @@ jobs: with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} + secrets: + PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} build-publish-docker-images: uses: ./.github/workflows/publish_images.yml diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index b9d02c34f30..44bc05c1599 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -30,6 +30,8 @@ jobs: with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} + secrets: + PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} publish-python-sdk: if: github.repository == 'feast-dev/feast' @@ -42,8 +44,8 @@ jobs: path: dist - name: Logging secret length env: - PYPI_TOKEN: ${{ secrets.PYPI_PASSWORD }} - run: echo "The length of the secret is ${#PYPI_TOKEN}" + PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: echo "The length of the secret is ${#PYPI_PASSWORD}" - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@v1.4.2 with: From 8eaa8ec6f5d5d4dd399e24b5e5a5cfcc3ccc91e1 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:11:38 -0500 Subject: [PATCH 45/55] adding input parameters to build wheels and publish python sdk Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 8 ++++++++ .github/workflows/publish_python_sdk.yml | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index d66f4db6381..1aa02853066 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -15,6 +15,10 @@ on: required: true default: "" type: string + PYPI_PASSWORD: + description: 'PyPI password' + required: true + type: string workflow_call: inputs: custom_version: # Optional input for a custom version @@ -26,6 +30,10 @@ on: required: true default: "" type: string + PYPI_PASSWORD: + description: 'PyPI password' + required: true + type: string jobs: build-python-wheel: diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 44bc05c1599..9bd09c1c3a3 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -12,6 +12,11 @@ on: required: true default: "" type: string + PYPI_PASSWORD: + description: 'PyPI password' + required: true + type: string + workflow_call: # Allows trigger of the workflow from another workflow inputs: custom_version: # Optional input for a custom version @@ -23,6 +28,10 @@ on: required: true default: "" type: string + PYPI_PASSWORD: + description: 'PyPI password' + required: true + type: string jobs: build-wheels: From c83e705b4770e4f69a925938bb809e12797d8195 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:21:45 -0500 Subject: [PATCH 46/55] addding inherit Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 8 -------- .github/workflows/publish.yml | 3 +-- .github/workflows/publish_python_sdk.yml | 13 ++----------- 3 files changed, 3 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index 1aa02853066..d66f4db6381 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -15,10 +15,6 @@ on: required: true default: "" type: string - PYPI_PASSWORD: - description: 'PyPI password' - required: true - type: string workflow_call: inputs: custom_version: # Optional input for a custom version @@ -30,10 +26,6 @@ on: required: true default: "" type: string - PYPI_PASSWORD: - description: 'PyPI password' - required: true - type: string jobs: build-python-wheel: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d28e3685635..1e6304554a2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,11 +30,10 @@ on: jobs: publish-python-sdk: uses: ./.github/workflows/publish_python_sdk.yml + secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} - secrets: - PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} build-publish-docker-images: uses: ./.github/workflows/publish_images.yml diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 9bd09c1c3a3..46fbcd10719 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -12,10 +12,6 @@ on: required: true default: "" type: string - PYPI_PASSWORD: - description: 'PyPI password' - required: true - type: string workflow_call: # Allows trigger of the workflow from another workflow inputs: @@ -28,19 +24,14 @@ on: required: true default: "" type: string - PYPI_PASSWORD: - description: 'PyPI password' - required: true - type: string jobs: build-wheels: uses: ./.github/workflows/build_wheels.yml + secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} - secrets: - PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} publish-python-sdk: if: github.repository == 'feast-dev/feast' @@ -59,4 +50,4 @@ jobs: uses: pypa/gh-action-pypi-publish@v1.4.2 with: user: __token__ - password: '${{ secrets.PYPI_PASSWORD }}' \ No newline at end of file + password: ${{ secrets.PYPI_PASSWORD }} \ No newline at end of file From 2be247d97a1218e7804b795accd909600a9089a4 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:37:36 -0500 Subject: [PATCH 47/55] commenting out the publish python sdk and adding inherit Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1e6304554a2..5a602f52dea 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -28,16 +28,17 @@ on: type: string jobs: - publish-python-sdk: - uses: ./.github/workflows/publish_python_sdk.yml - secrets: inherit - with: - custom_version: ${{ github.event.inputs.custom_version }} - token: ${{ github.event.inputs.token }} +# publish-python-sdk: +# uses: ./.github/workflows/publish_python_sdk.yml +# secrets: inherit +# with: +# custom_version: ${{ github.event.inputs.custom_version }} +# token: ${{ github.event.inputs.token }} build-publish-docker-images: uses: ./.github/workflows/publish_images.yml needs: [ publish-python-sdk ] + secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} @@ -45,6 +46,7 @@ jobs: publish-helm-charts: uses: ./.github/workflows/publish_helm_charts.yml needs: [ publish-python-sdk ] + secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} @@ -52,6 +54,7 @@ jobs: publish-java-sdk: uses: ./.github/workflows/publish_java_sdk.yml needs: [ publish-python-sdk ] + secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} token: ${{ github.event.inputs.token }} From 82c7415838e824822a54ab19a8fe98b8484d5e52 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:39:16 -0500 Subject: [PATCH 48/55] commenting out the needs Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5a602f52dea..b755aea79e8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -37,7 +37,7 @@ jobs: build-publish-docker-images: uses: ./.github/workflows/publish_images.yml - needs: [ publish-python-sdk ] +# needs: [ publish-python-sdk ] secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} @@ -45,7 +45,7 @@ jobs: publish-helm-charts: uses: ./.github/workflows/publish_helm_charts.yml - needs: [ publish-python-sdk ] +# needs: [ publish-python-sdk ] secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} @@ -53,7 +53,7 @@ jobs: publish-java-sdk: uses: ./.github/workflows/publish_java_sdk.yml - needs: [ publish-python-sdk ] +# needs: [ publish-python-sdk ] secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} From 242ad7ae6ed39e6844b9ef0b82a155e07b5ab516 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:44:44 -0500 Subject: [PATCH 49/55] removing commented out code and logging to incorporate code that worked Signed-off-by: Francisco Javier Arceo --- .github/workflows/build_wheels.yml | 1 - .github/workflows/publish.yml | 18 +++++++++--------- .github/workflows/publish_python_sdk.yml | 1 - 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml index d66f4db6381..8f71b41d08b 100644 --- a/.github/workflows/build_wheels.yml +++ b/.github/workflows/build_wheels.yml @@ -55,7 +55,6 @@ jobs: VERSION: ${{ steps.get-version.outputs.release_version }} PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - echo "The length of the secret is ${#PYPI_PASSWORD}" git fetch --tags git checkout ${VERSION} python -m pip install build diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b755aea79e8..85c7c0e9141 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -28,16 +28,16 @@ on: type: string jobs: -# publish-python-sdk: -# uses: ./.github/workflows/publish_python_sdk.yml -# secrets: inherit -# with: -# custom_version: ${{ github.event.inputs.custom_version }} -# token: ${{ github.event.inputs.token }} + publish-python-sdk: + uses: ./.github/workflows/publish_python_sdk.yml + secrets: inherit + with: + custom_version: ${{ github.event.inputs.custom_version }} + token: ${{ github.event.inputs.token }} build-publish-docker-images: uses: ./.github/workflows/publish_images.yml -# needs: [ publish-python-sdk ] + needs: [ publish-python-sdk ] secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} @@ -45,7 +45,7 @@ jobs: publish-helm-charts: uses: ./.github/workflows/publish_helm_charts.yml -# needs: [ publish-python-sdk ] + needs: [ publish-python-sdk ] secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} @@ -53,7 +53,7 @@ jobs: publish-java-sdk: uses: ./.github/workflows/publish_java_sdk.yml -# needs: [ publish-python-sdk ] + needs: [ publish-python-sdk ] secrets: inherit with: custom_version: ${{ github.event.inputs.custom_version }} diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 46fbcd10719..571cb79090e 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -45,7 +45,6 @@ jobs: - name: Logging secret length env: PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - run: echo "The length of the secret is ${#PYPI_PASSWORD}" - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@v1.4.2 with: From 8d43d327c8ac947ed9f1633c0f34b8a0849fb954 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:46:14 -0500 Subject: [PATCH 50/55] adding one more change to remove logging Signed-off-by: Francisco Javier Arceo --- .github/workflows/publish_python_sdk.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/publish_python_sdk.yml b/.github/workflows/publish_python_sdk.yml index 571cb79090e..03d0e989b49 100644 --- a/.github/workflows/publish_python_sdk.yml +++ b/.github/workflows/publish_python_sdk.yml @@ -42,9 +42,6 @@ jobs: with: name: python-wheels path: dist - - name: Logging secret length - env: - PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - name: Publish package to PyPI uses: pypa/gh-action-pypi-publish@v1.4.2 with: From 9152d60d0ddc0be3daa3fc150e4d6c254dcbf7f3 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:56:13 -0500 Subject: [PATCH 51/55] removing changes outside of actions Signed-off-by: Francisco Javier Arceo --- .releaserc.js | 2 +- infra/feast-operator/dist/install.yaml | 4 ++-- .../internal/controller/services/services_types.go | 4 ---- .../feast-operator/internal/controller/services/util.go | 6 +++--- infra/feast-operator/test/e2e/e2e_test.go | 2 +- infra/feast-operator/test/e2e/test_util.go | 2 +- .../v1alpha1_default_featurestore.yaml | 9 +++++++-- .../v1alpha1_remote_registry_featurestore.yaml | 6 ++++-- infra/scripts/release/files_to_bump.txt | 1 + 9 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.releaserc.js b/.releaserc.js index b972f0984cd..f2be2440057 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -41,7 +41,7 @@ module.exports = { "verifyReleaseCmd": "./infra/scripts/validate-release.sh ${nextRelease.type} " + current_branch, // Bump all version files and build UI / update yarn.lock / helm charts - "prepareCmd": "python ./infra/scripts/release/bump_file_versions.py ${lastRelease.version} ${nextRelease.version}; make build-ui; make build-helm-docs; make -C infra/feast-operator build-installer bundle" + "prepareCmd": "python ./infra/scripts/release/bump_file_versions.py ${lastRelease.version} ${nextRelease.version}; make build-ui; make build-helm-docs" }], ["@semantic-release/release-notes-generator", { diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml index bfff6a976ae..ae9a37d8c9c 100644 --- a/infra/feast-operator/dist/install.yaml +++ b/infra/feast-operator/dist/install.yaml @@ -3580,10 +3580,10 @@ spec: - /manager env: - name: RELATED_IMAGE_FEATURE_SERVER - value: docker.io/feastdev/feature-server:0.43.0 + value: docker.io/feastdev/feature-server:0.42.0 - name: RELATED_IMAGE_GRPC_CURL value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine - image: feastdev/feast-operator:0.43.0 + image: feastdev/feast-operator:0.42.0 livenessProbe: httpGet: path: /healthz diff --git a/infra/feast-operator/internal/controller/services/services_types.go b/infra/feast-operator/internal/controller/services/services_types.go index 3dba6c68115..55a5a42e2a7 100644 --- a/infra/feast-operator/internal/controller/services/services_types.go +++ b/infra/feast-operator/internal/controller/services/services_types.go @@ -25,10 +25,6 @@ import ( ) const ( - feastServerImageVar = "RELATED_IMAGE_FEATURE_SERVER" - grpcCurlImageVar = "RELATED_IMAGE_GRPC_CURL" - grpcCurlImage = "fullstorydev/grpcurl:v1.9.1-alpine" - TmpFeatureStoreYamlEnvVar = "TMP_FEATURE_STORE_YAML_BASE64" FeatureStoreYamlCmKey = "feature_store.yaml" EphemeralPath = "/feast-data" diff --git a/infra/feast-operator/internal/controller/services/util.go b/infra/feast-operator/internal/controller/services/util.go index 4b5cf45281c..b39a851c14b 100644 --- a/infra/feast-operator/internal/controller/services/util.go +++ b/infra/feast-operator/internal/controller/services/util.go @@ -172,17 +172,17 @@ func setServiceDefaultConfigs(defaultConfigs *feastdevv1alpha1.DefaultConfigs) { } func getFeatureServerImage() string { - if img, exists := os.LookupEnv(feastServerImageVar); exists { + if img, exists := os.LookupEnv("RELATED_IMAGE_FEATURE_SERVER"); exists { return img } return DefaultImage } func getGrpcCurlImage() string { - if img, exists := os.LookupEnv(grpcCurlImageVar); exists { + if img, exists := os.LookupEnv("RELATED_IMAGE_GRPC_CURL"); exists { return img } - return grpcCurlImage + return "fullstorydev/grpcurl:v1.9.1-alpine" } func checkOfflineStoreFilePersistenceType(value string) error { diff --git a/infra/feast-operator/test/e2e/e2e_test.go b/infra/feast-operator/test/e2e/e2e_test.go index f3611dcf0d7..e55ac0156a7 100644 --- a/infra/feast-operator/test/e2e/e2e_test.go +++ b/infra/feast-operator/test/e2e/e2e_test.go @@ -75,7 +75,7 @@ var _ = Describe("controller", Ordered, func() { ExpectWithOffset(1, err).NotTo(HaveOccurred()) By("deploying the controller-manager") - cmd = exec.Command("make", "deploy", fmt.Sprintf("IMG=%s", projectimage), fmt.Sprintf("FS_IMG=%s", feastLocalImage)) + cmd = exec.Command("make", "deploy", fmt.Sprintf("IMG=%s", projectimage)) _, err = utils.Run(cmd) ExpectWithOffset(1, err).NotTo(HaveOccurred()) diff --git a/infra/feast-operator/test/e2e/test_util.go b/infra/feast-operator/test/e2e/test_util.go index 73c9114accb..017690a0ec9 100644 --- a/infra/feast-operator/test/e2e/test_util.go +++ b/infra/feast-operator/test/e2e/test_util.go @@ -158,7 +158,7 @@ func checkIfKubernetesServiceExists(namespace, serviceName string) error { func isFeatureStoreHavingRemoteRegistry(namespace, featureStoreName string) (bool, error) { cmd := exec.Command("kubectl", "get", "featurestore", featureStoreName, "-n", namespace, - "-o=jsonpath='{.status.applied.services.registry}'") + "-o=jsonpath='{.spec.services.registry}'") // Capture the output output, err := cmd.Output() diff --git a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml index 3c88d71e566..0252a5fecf5 100644 --- a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml +++ b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_default_featurestore.yaml @@ -5,5 +5,10 @@ metadata: spec: feastProject: my_project services: - onlineStore: {} - offlineStore: {} + onlineStore: + image: 'localhost/feastdev/feature-server:dev' + offlineStore: + image: 'localhost/feastdev/feature-server:dev' + registry: + local: + image: 'localhost/feastdev/feature-server:dev' diff --git a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml index 9b12b78577c..61c010f0576 100644 --- a/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml +++ b/infra/feast-operator/test/testdata/feast_integration_test_crs/v1alpha1_remote_registry_featurestore.yaml @@ -5,8 +5,10 @@ metadata: spec: feastProject: my_project services: - onlineStore: {} - offlineStore: {} + onlineStore: + image: 'localhost/feastdev/feature-server:dev' + offlineStore: + image: 'localhost/feastdev/feature-server:dev' registry: remote: feastRef: diff --git a/infra/scripts/release/files_to_bump.txt b/infra/scripts/release/files_to_bump.txt index 8dabe1104f5..0e0ac0bce6d 100644 --- a/infra/scripts/release/files_to_bump.txt +++ b/infra/scripts/release/files_to_bump.txt @@ -14,6 +14,7 @@ infra/feast-helm-operator/Makefile 6 infra/feast-helm-operator/config/manager/kustomization.yaml 8 infra/feast-operator/Makefile 6 infra/feast-operator/config/manager/kustomization.yaml 8 +infra/feast-operator/config/default/manager_related_images_patch.yaml 5 infra/feast-operator/config/overlays/odh/params.env 1 infra/feast-operator/api/feastversion/version.go 20 java/pom.xml 38 From d7d9a5bad7ecd3149c80a81cecd5f66c6b06df2b Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:57:58 -0500 Subject: [PATCH 52/55] removing makefile change Signed-off-by: Francisco Javier Arceo --- infra/feast-operator/Makefile | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/infra/feast-operator/Makefile b/infra/feast-operator/Makefile index dee7c3068b6..56f388fde65 100644 --- a/infra/feast-operator/Makefile +++ b/infra/feast-operator/Makefile @@ -51,7 +51,6 @@ endif OPERATOR_SDK_VERSION ?= v1.38.0 # Image URL to use all building/pushing image targets IMG ?= $(IMAGE_TAG_BASE):$(VERSION) -FS_IMG ?= docker.io/feastdev/feature-server:$(VERSION) # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. ENVTEST_K8S_VERSION = 1.30.0 @@ -173,7 +172,7 @@ docker-buildx: ## Build and push docker image for the manager for cross-platform rm Dockerfile.cross .PHONY: build-installer -build-installer: manifests generate related-image-fs kustomize ## Generate a consolidated YAML with CRDs and deployment. +build-installer: manifests generate kustomize ## Generate a consolidated YAML with CRDs and deployment. mkdir -p dist cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} $(KUSTOMIZE) build config/default > dist/install.yaml @@ -193,7 +192,7 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified $(KUSTOMIZE) build config/crd | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f - .PHONY: deploy -deploy: manifests kustomize related-image-fs ## Deploy controller to the K8s cluster specified in ~/.kube/config. +deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} $(KUSTOMIZE) build config/default | $(KUBECTL) apply -f - @@ -214,14 +213,12 @@ KUSTOMIZE ?= $(LOCALBIN)/kustomize CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen ENVTEST ?= $(LOCALBIN)/setup-envtest GOLANGCI_LINT = $(LOCALBIN)/golangci-lint -ENVSUBST = $(LOCALBIN)/envsubst ## Tool Versions KUSTOMIZE_VERSION ?= v5.4.2 CONTROLLER_TOOLS_VERSION ?= v0.15.0 ENVTEST_VERSION ?= release-0.18 GOLANGCI_LINT_VERSION ?= v1.59.1 -ENVSUBST_VERSION ?= v1.4.2 .PHONY: kustomize kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary. @@ -243,11 +240,6 @@ golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary. $(GOLANGCI_LINT): $(LOCALBIN) $(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION)) -.PHONY: envsubst -envsubst: $(ENVSUBST) ## Download envsubst locally if necessary. -$(ENVSUBST): $(LOCALBIN) - $(call go-install-tool,$(ENVSUBST),github.com/a8m/envsubst/cmd/envsubst,$(ENVSUBST_VERSION)) - # go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist # $1 - target path with name of binary (ideally with version) # $2 - package url which can be installed @@ -283,7 +275,7 @@ endif endif .PHONY: bundle -bundle: manifests kustomize related-image-fs operator-sdk ## Generate bundle manifests and metadata, then validate generated files. +bundle: manifests kustomize operator-sdk ## Generate bundle manifests and metadata, then validate generated files. $(OPERATOR_SDK) generate kustomize manifests -q cd config/manager && $(KUSTOMIZE) edit set image controller=$(IMG) $(KUSTOMIZE) build config/manifests | $(OPERATOR_SDK) generate bundle $(BUNDLE_GEN_FLAGS) @@ -337,7 +329,3 @@ catalog-build: opm ## Build a catalog image. .PHONY: catalog-push catalog-push: ## Push a catalog image. $(MAKE) docker-push IMG=$(CATALOG_IMG) - -.PHONY: related-image-fs -related-image-fs: envsubst - FS_IMG=$(FS_IMG) $(ENVSUBST) < config/default/related_image_fs_patch.tmpl > config/default/related_image_fs_patch.yaml From 5b5b833aed5ef84f3b75693ce8a324553fc3d549 Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 22:58:50 -0500 Subject: [PATCH 53/55] removing yamls Signed-off-by: Francisco Javier Arceo --- .../feast-operator.clusterserviceversion.yaml | 12 ++++++------ .../feast-operator/config/default/kustomization.yaml | 8 ++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml index 7fb9fcd1dda..bfd32b5a830 100644 --- a/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml +++ b/infra/feast-operator/bundle/manifests/feast-operator.clusterserviceversion.yaml @@ -16,10 +16,10 @@ metadata: } ] capabilities: Basic Install - createdAt: "2025-01-20T18:09:06Z" + createdAt: "2025-01-16T22:15:56Z" operators.operatorframework.io/builder: operator-sdk-v1.38.0 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 - name: feast-operator.v0.43.0 + name: feast-operator.v0.42.0 namespace: placeholder spec: apiservicedefinitions: {} @@ -150,10 +150,10 @@ spec: - /manager env: - name: RELATED_IMAGE_FEATURE_SERVER - value: docker.io/feastdev/feature-server:0.43.0 + value: docker.io/feastdev/feature-server:0.42.0 - name: RELATED_IMAGE_GRPC_CURL value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine - image: feastdev/feast-operator:0.43.0 + image: feastdev/feast-operator:0.42.0 livenessProbe: httpGet: path: /healthz @@ -243,8 +243,8 @@ spec: name: Feast Community url: https://lf-aidata.atlassian.net/wiki/spaces/FEAST/ relatedImages: - - image: docker.io/feastdev/feature-server:0.43.0 + - image: docker.io/feastdev/feature-server:0.42.0 name: feature-server - image: docker.io/fullstorydev/grpcurl:v1.9.1-alpine name: grpc-curl - version: 0.43.0 + version: 0.42.0 diff --git a/infra/feast-operator/config/default/kustomization.yaml b/infra/feast-operator/config/default/kustomization.yaml index b494dc123b2..01534ae5cc8 100644 --- a/infra/feast-operator/config/default/kustomization.yaml +++ b/infra/feast-operator/config/default/kustomization.yaml @@ -28,15 +28,11 @@ resources: # [METRICS] Expose the controller manager metrics service. - metrics_service.yaml - +# Uncomment the patches line if you enable Metrics, and/or are using webhooks and cert-manager patches: -- path: related_image_fs_patch.yaml +- path: manager_related_images_patch.yaml target: kind: Deployment -- path: related_image_grpc_patch.yaml - target: - kind: Deployment -# Uncomment the patches line if you enable Metrics, and/or are using webhooks and cert-manager # [METRICS] The following patch will enable the metrics endpoint using HTTPS and the port :8443. # More info: https://book.kubebuilder.io/reference/metrics - path: manager_metrics_patch.yaml From 51b330f268e0e15286eeb8d9d5ec97ae3150760e Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 23:01:06 -0500 Subject: [PATCH 54/55] removing changes files and reverting move of file Signed-off-by: Francisco Javier Arceo --- ...image_fs_patch.yaml => manager_related_images_patch.yaml} | 0 .../config/default/related_image_fs_patch.tmpl | 5 ----- .../config/default/related_image_grpc_patch.yaml | 5 ----- 3 files changed, 10 deletions(-) rename infra/feast-operator/config/default/{related_image_fs_patch.yaml => manager_related_images_patch.yaml} (100%) delete mode 100644 infra/feast-operator/config/default/related_image_fs_patch.tmpl delete mode 100644 infra/feast-operator/config/default/related_image_grpc_patch.yaml diff --git a/infra/feast-operator/config/default/related_image_fs_patch.yaml b/infra/feast-operator/config/default/manager_related_images_patch.yaml similarity index 100% rename from infra/feast-operator/config/default/related_image_fs_patch.yaml rename to infra/feast-operator/config/default/manager_related_images_patch.yaml diff --git a/infra/feast-operator/config/default/related_image_fs_patch.tmpl b/infra/feast-operator/config/default/related_image_fs_patch.tmpl deleted file mode 100644 index f3508836a86..00000000000 --- a/infra/feast-operator/config/default/related_image_fs_patch.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -- op: replace - path: "/spec/template/spec/containers/0/env/0" - value: - name: RELATED_IMAGE_FEATURE_SERVER - value: ${FS_IMG} diff --git a/infra/feast-operator/config/default/related_image_grpc_patch.yaml b/infra/feast-operator/config/default/related_image_grpc_patch.yaml deleted file mode 100644 index 5c23ece2f01..00000000000 --- a/infra/feast-operator/config/default/related_image_grpc_patch.yaml +++ /dev/null @@ -1,5 +0,0 @@ -- op: replace - path: "/spec/template/spec/containers/0/env/1" - value: - name: RELATED_IMAGE_GRPC_CURL - value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine From db4a1e757eb0db6a866559465ca96c9ad0d92d7d Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Wed, 22 Jan 2025 23:01:37 -0500 Subject: [PATCH 55/55] reverting changed files Signed-off-by: Francisco Javier Arceo --- .../config/default/manager_related_images_patch.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/infra/feast-operator/config/default/manager_related_images_patch.yaml b/infra/feast-operator/config/default/manager_related_images_patch.yaml index 7abd129617c..084de876612 100644 --- a/infra/feast-operator/config/default/manager_related_images_patch.yaml +++ b/infra/feast-operator/config/default/manager_related_images_patch.yaml @@ -3,3 +3,8 @@ value: name: RELATED_IMAGE_FEATURE_SERVER value: docker.io/feastdev/feature-server:0.43.0 +- op: replace + path: "/spec/template/spec/containers/0/env/1" + value: + name: RELATED_IMAGE_GRPC_CURL + value: docker.io/fullstorydev/grpcurl:v1.9.1-alpine