Skip to content

Split/fn eval namespace#4444

Open
SurbhiAgarwal1 wants to merge 1 commit intokptdev:mainfrom
SurbhiAgarwal1:split/fn-eval-namespace
Open

Split/fn eval namespace#4444
SurbhiAgarwal1 wants to merge 1 commit intokptdev:mainfrom
SurbhiAgarwal1:split/fn-eval-namespace

Conversation

@SurbhiAgarwal1
Copy link
Contributor

This PR updates the kpt fn eval E2E test suite to use the :latest version of the set-namespace function.

Key Changes

1. Maintain set-namespace Behavior for Custom Resources

  • Adds an isUnknown() heuristic in internal/kptops/set-namespace.go that detects Custom Resources (CRs) by inspecting the API group.
  • Standard Kubernetes groups (empty, apps, batch, *.k8s.io) are treated as known resources and always get a namespace set.
  • CRs with custom API groups (e.g., custom.io/v1) that have no existing namespace are skipped, preserving backwards compatibility with the :latest set-namespace function image.

2. Update E2E Test Data (e2e/testdata/fn-eval/)

  • Updates Kptfile references from pinned set-namespace image tags (e.g., gcr.io/kpt-fn/set-namespace:v0.4.1) to the :latest tag (ghcr.io/kptdev/krm-functions/set-namespace:latest).
  • Updates .expected/ golden files to reflect the new behavior of :latest, where Custom Resources without an existing namespace are not modified.

3. Fix line-ending issues in CI

  • Adds .gitattributes to force LF line endings for *.sh files and CRLF for *.bat/*.cmd files, preventing bash\r errors in CI.

4. Test infrastructure updates

  • Updates internal/fnruntime/runner_test.go to align with the new function behavior.

Motivation

The set-namespace function images previously used in E2E tests were pinned to older versions hosted on gcr.io. This PR migrates all fn eval tests to use the :latest image from ghcr.io/kptdev/krm-functions, ensuring tests reflect the current upstream behavior.

This is part 1 of a 2-PR split (fn-eval + fn-render) from the original PR #4420.

Signed-off-by: Surbhi agarwalsurbhi1807@gmail.com

Copilot AI review requested due to automatic review settings March 22, 2026 17:35
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Mar 22, 2026
@netlify
Copy link

netlify bot commented Mar 22, 2026

Deploy Preview for kptdocs ready!

Name Link
🔨 Latest commit d312fb5
🔍 Latest deploy log https://app.netlify.com/projects/kptdocs/deploys/69c0c0318883be0008b3dbdc
😎 Deploy Preview https://deploy-preview-4444--kptdocs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dosubot dosubot bot added area/fn-runtime KRM function runtime go Pull requests that update Go code Testing labels Mar 22, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates E2E fixtures to use set-namespace:latest and adjusts expected golden outputs accordingly, along with adding .gitattributes to standardize line endings.

Changes:

  • Switches many fn eval expected configs/results to reference set-namespace:latest and updates stdout/stderr/golden patches to match the newer behavior.
  • Adds a repository-level .gitattributes to enforce LF for *.sh and CRLF for *.bat/*.cmd.
  • Removes a large set of e2e/testdata/fn-render/** fixtures and expected outputs.

Reviewed changes

Copilot reviewed 291 out of 677 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
e2e/testdata/fn-render/mutate-legacy-path-index/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/mutate-legacy-path-index/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/multiple-fnconfig/resources.yaml Removes render fixture
e2e/testdata/fn-render/multiple-fnconfig/configmap.yaml Removes render fixture
e2e/testdata/fn-render/multiple-fnconfig/Kptfile Removes render fixture
e2e/testdata/fn-render/multiple-fnconfig/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/multiple-fnconfig/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/modify-path-annotation/starlark-fn.yaml Removes render fixture
e2e/testdata/fn-render/modify-path-annotation/deployment.yaml Removes render fixture
e2e/testdata/fn-render/modify-path-annotation/Kptfile Removes render fixture
e2e/testdata/fn-render/modify-path-annotation/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/modify-path-annotation/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/modify-legacy-path-annotation/starlark-fn.yaml Removes render fixture
e2e/testdata/fn-render/modify-legacy-path-annotation/deployment.yaml Removes render fixture
e2e/testdata/fn-render/modify-legacy-path-annotation/Kptfile Removes render fixture
e2e/testdata/fn-render/modify-legacy-path-annotation/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/modify-legacy-path-annotation/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/missing-kptfile/resources.yaml Removes render fixture
e2e/testdata/fn-render/missing-kptfile/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/missing-kptfile/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/missing-fnconfig/resources.yaml Removes render fixture
e2e/testdata/fn-render/missing-fnconfig/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/missing-fnconfig/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/missing-fnconfig/db/Kptfile Removes render fixture
e2e/testdata/fn-render/missing-fnconfig/Kptfile Removes render fixture
e2e/testdata/fn-render/missing-fnconfig/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/missing-fnconfig/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/missing-fn-image/resources.yaml Removes render fixture
e2e/testdata/fn-render/missing-fn-image/Kptfile Removes render fixture
e2e/testdata/fn-render/missing-fn-image/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/missing-fn-image/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/kubeval-failure/resources.yaml Removes render fixture
e2e/testdata/fn-render/kubeval-failure/Kptfile Removes render fixture
e2e/testdata/fn-render/kubeval-failure/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/kubeval-failure/.expected/results.yaml Removes expected results
e2e/testdata/fn-render/kubeval-failure/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/krmignore/resources.yaml Removes render fixture
e2e/testdata/fn-render/krmignore/Kptfile Removes render fixture
e2e/testdata/fn-render/krmignore/.krmignore Removes ignore rules
e2e/testdata/fn-render/krm-check-exclude-kustomize/resources.yaml Removes render fixture
e2e/testdata/fn-render/krm-check-exclude-kustomize/kustomization.yaml Removes render fixture
e2e/testdata/fn-render/krm-check-exclude-kustomize/Kptfile Removes render fixture
e2e/testdata/fn-render/krm-check-exclude-kustomize/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/kptfile-unknown-fields/resources.yaml Removes render fixture
e2e/testdata/fn-render/kptfile-unknown-fields/Kptfile Removes render fixture
e2e/testdata/fn-render/kptfile-unknown-fields/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/kptfile-unknown-fields/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/invalid-kptfile/resources.yaml Removes render fixture
e2e/testdata/fn-render/invalid-kptfile/Kptfile Removes render fixture
e2e/testdata/fn-render/invalid-kptfile/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/invalid-kptfile/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/invalid-inline-fnconfig/Kptfile Removes render fixture
e2e/testdata/fn-render/invalid-configmap-fnconfig/resources.yaml Removes render fixture
e2e/testdata/fn-render/invalid-configmap-fnconfig/Kptfile Removes render fixture
e2e/testdata/fn-render/invalid-configmap-fnconfig/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/invalid-configmap-fnconfig/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/image-pull-policy-never/resources.yaml Removes render fixture
e2e/testdata/fn-render/image-pull-policy-never/Kptfile Removes render fixture
e2e/testdata/fn-render/image-pull-policy-never/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/image-pull-policy-never/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/image-pull-policy-if-not-present/resources.yaml Removes render fixture
e2e/testdata/fn-render/image-pull-policy-if-not-present/Kptfile Removes render fixture
e2e/testdata/fn-render/image-pull-policy-if-not-present/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/image-pull-policy-if-not-present/.expected/setup.sh Removes setup script
e2e/testdata/fn-render/image-pull-policy-if-not-present/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/image-pull-policy-always/resources.yaml Removes render fixture
e2e/testdata/fn-render/image-pull-policy-always/Kptfile Removes render fixture
e2e/testdata/fn-render/image-pull-policy-always/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/image-pull-policy-always/.expected/setup.sh Removes setup script
e2e/testdata/fn-render/image-pull-policy-always/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/generator/resources.yaml Removes render fixture
e2e/testdata/fn-render/generator/db/starlark-httpbin.yaml Removes render fixture
e2e/testdata/fn-render/generator/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/generator/db/Kptfile Removes render fixture
e2e/testdata/fn-render/generator/Kptfile Removes render fixture
e2e/testdata/fn-render/generator/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/generator/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/generator-subpkgs/resources.yaml Removes render fixture
e2e/testdata/fn-render/generator-subpkgs/fn-config.yaml Removes render fixture
e2e/testdata/fn-render/generator-subpkgs/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/generator-subpkgs/db/fn-config.yaml Removes render fixture
e2e/testdata/fn-render/generator-subpkgs/db/Kptfile Removes render fixture
e2e/testdata/fn-render/generator-subpkgs/Kptfile Removes render fixture
e2e/testdata/fn-render/generator-subpkgs/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/generator-absolute-path/starlark-httpbin.yaml Removes render fixture
e2e/testdata/fn-render/generator-absolute-path/resources.yaml Removes render fixture
e2e/testdata/fn-render/generator-absolute-path/Kptfile Removes render fixture
e2e/testdata/fn-render/generator-absolute-path/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/generator-absolute-path/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/format-on-success/resources.yaml Removes render fixture
e2e/testdata/fn-render/format-on-success/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/format-on-success/db/Kptfile Removes render fixture
e2e/testdata/fn-render/format-on-success/Kptfile Removes render fixture
e2e/testdata/fn-render/format-on-success/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/format-on-success/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fnresult-fn-success/search-replace-conf.yaml Removes render fixture
e2e/testdata/fn-render/fnresult-fn-success/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnresult-fn-success/Kptfile Removes render fixture
e2e/testdata/fn-render/fnresult-fn-success/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnresult-fn-success/.expected/results.yaml Removes expected results
e2e/testdata/fn-render/fnresult-fn-success/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fnresult-fn-success/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnresult-fn-failure/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnresult-fn-failure/Kptfile Removes render fixture
e2e/testdata/fn-render/fnresult-fn-failure/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnresult-fn-failure/.expected/results.yaml Removes expected results
e2e/testdata/fn-render/fnresult-fn-failure/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig/db/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fnconfig-updated-in-render/update-labels.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-updated-in-render/package-context.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-updated-in-render/namespace.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-updated-in-render/label-input.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-updated-in-render/app.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-updated-in-render/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-updated-in-render/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-updated-in-render/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/confs/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-pkgfn-refers-subdir/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fnconfig-outside-package/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-outside-package/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-outside-package/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-outside-package/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-outside-package/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig-not-relative/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-not-relative/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-not-relative/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-not-relative/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-not-relative/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig-multiple-config-one-file/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-multiple-config-one-file/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-multiple-config-one-file/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-multiple-config-one-file/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-multiple-config-one-file/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig-missing-name/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-missing-name/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-missing-name/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-missing-name/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-missing-name/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig-in-subdir/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-in-subdir/db/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-in-subdir/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-in-subdir/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-in-subdir/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fnconfig-in-subdir/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/db/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-cannot-refer-subpkgs/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/resources.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/db/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/Kptfile Removes render fixture
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fnconfig-ancestorfn-not-mutate-subpkg-config/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/fn-success-with-stderr/starlark.yaml Removes render fixture
e2e/testdata/fn-render/fn-success-with-stderr/resources.yaml Removes render fixture
e2e/testdata/fn-render/fn-success-with-stderr/Kptfile Removes render fixture
e2e/testdata/fn-render/fn-success-with-stderr/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fn-success-with-stderr/.expected/results.yaml Removes expected results
e2e/testdata/fn-render/fn-failure/starlark-failure-fn.yaml Removes render fixture
e2e/testdata/fn-render/fn-failure/resources.yaml Removes render fixture
e2e/testdata/fn-render/fn-failure/deployment_httpbin.yaml Removes render fixture
e2e/testdata/fn-render/fn-failure/Kptfile Removes render fixture
e2e/testdata/fn-render/fn-failure/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fn-failure/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/fn-failure-output-no-truncate/resources.yaml Removes render fixture
e2e/testdata/fn-render/fn-failure-output-no-truncate/Kptfile Removes render fixture
e2e/testdata/fn-render/fn-failure-output-no-truncate/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/fn-failure-output-no-truncate/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/exec-without-permissions/resources.yaml Removes render fixture
e2e/testdata/fn-render/exec-without-permissions/Kptfile Removes render fixture
e2e/testdata/fn-render/exec-without-permissions/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/exec-without-permissions/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/exec-function-with-args/resources.yaml Removes render fixture
e2e/testdata/fn-render/exec-function-with-args/Kptfile Removes render fixture
e2e/testdata/fn-render/exec-function-with-args/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/exec-function-with-args/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/exec-function-with-args/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/exec-function-stderr/resources.yaml Removes render fixture
e2e/testdata/fn-render/exec-function-stderr/function.sh Removes exec function script
e2e/testdata/fn-render/exec-function-stderr/Kptfile Removes render fixture
e2e/testdata/fn-render/exec-function-stderr/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/exec-function-stderr/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/exec-function-stderr/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/empty-pipeline/resources.yaml Removes render fixture
e2e/testdata/fn-render/empty-pipeline/Kptfile Removes render fixture
e2e/testdata/fn-render/empty-pipeline/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/default-runtime/resources.yaml Removes render fixture
e2e/testdata/fn-render/default-runtime/Kptfile Removes render fixture
e2e/testdata/fn-render/default-runtime/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/default-runtime/.expected/exec.sh Removes expected script
e2e/testdata/fn-render/default-runtime/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/basicpipeline/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/basicpipeline/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/basicpipeline/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/basicpipeline-wasm/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-wasm/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline-wasm/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/basicpipeline-wasm/.expected/teardown.sh Removes expected script
e2e/testdata/fn-render/basicpipeline-wasm/.expected/setup.sh Removes expected script
e2e/testdata/fn-render/basicpipeline-wasm/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/basicpipeline-wasm/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/basicpipeline-v1alpha2/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-v1alpha2/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline-v1alpha2/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/basicpipeline-v1alpha2/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/basicpipeline-v1alpha1/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-v1alpha1/labelconfig.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-v1alpha1/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline-v1alpha1/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/basicpipeline-v1alpha1/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/basicpipeline-symlink/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-symlink/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline-symlink/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/basicpipeline-symlink/.expected/exec.sh Removes expected script
e2e/testdata/fn-render/basicpipeline-symlink/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/basicpipeline-symlink/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/basicpipeline-semver/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-semver/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline-semver/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/basicpipeline-semver/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/basicpipeline-semver/.expected/config.yaml Removes expected config
e2e/testdata/fn-render/basicpipeline-out-of-place/resources.yaml Removes render fixture
e2e/testdata/fn-render/basicpipeline-out-of-place/Kptfile Removes render fixture
e2e/testdata/fn-render/basicpipeline-out-of-place/.krmignore Removes ignore rules
e2e/testdata/fn-render/basicpipeline-out-of-place/.expected/exec.sh Removes expected script
e2e/testdata/fn-render/basicpipeline-out-of-place/.expected/diff.patch Removes golden diff
e2e/testdata/fn-render/all-resource-deletion/resources.yaml Removes render fixture
e2e/testdata/fn-render/all-resource-deletion/deployment.yaml Removes render fixture
e2e/testdata/fn-render/all-resource-deletion/delete-all.yaml Removes render fixture
e2e/testdata/fn-render/all-resource-deletion/Kptfile Removes render fixture
e2e/testdata/fn-render/all-resource-deletion/.krmignore Removes ignore rule for .expected
e2e/testdata/fn-render/all-resource-deletion/.expected/diff.patch Removes golden diff
e2e/testdata/fn-eval/wasm-function/.expected/config.yaml Updates function image references to :latest
e2e/testdata/fn-eval/subpkgs/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/subpkgs-with-krmignore/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/subpkg-include-meta-resources/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/subpkg-has-samename-subdir/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/subpkg-exclude-fn-config-by-default/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/simple-function/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/simple-function-symlink/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/short-image-path/.expected/results.yaml Updates expected result image tag
e2e/testdata/fn-eval/short-image-path/.expected/config.yaml Updates short image ref and expected stderr
e2e/testdata/fn-eval/selectors/selectors-with-exclude/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/selectors/out-of-place-fnchain-unwrap/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/selectors/exclude/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/selectors/basicpipeline/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/save-fn/validator-type/.expected/config.yaml Updates image tag and “Added …” message
e2e/testdata/fn-eval/save-fn/preserve-kptfile-comments/.expected/config.yaml Updates image tag and “Added …” message
e2e/testdata/fn-eval/save-fn/override-fn/.expected/config.yaml Updates image tag and “Updated …” message
e2e/testdata/fn-eval/save-fn/no-save-when-fail/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/save-fn/match-selector/.expected/config.yaml Updates image tag and “Added …” message
e2e/testdata/fn-eval/save-fn/image/.expected/config.yaml Updates image tag and “Added …” message
e2e/testdata/fn-eval/save-fn/custom-pkg-path/.expected/config.yaml Updates image tag and “Added …” message
e2e/testdata/fn-eval/preserve-order-null-values/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/preserve-order-include-meta-resources/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/preserve-comments/.expected/diff.patch Updates golden diff output
e2e/testdata/fn-eval/output-to-stdout/.expected/config.yaml Updates stdout golden (namespace change)
e2e/testdata/fn-eval/out-of-place-fnchain-unwrap/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/out-of-place-fnchain-stdout/.expected/config.yaml Updates expected stderr/stdout golden
e2e/testdata/fn-eval/out-of-place-dir/.expected/config.yaml Updates expected stderr image tag
e2e/testdata/fn-eval/non-krm-resource/.expected/config.yaml Updates failure stderr image tag
e2e/testdata/fn-eval/no-op/.expected/diff.patch Updates golden diff output
e2e/testdata/fn-eval/multiple-fn-config-one-file/pkg/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/missing-fn-config/.expected/diff.patch Updates golden diff output
e2e/testdata/fn-eval/missing-fn-config/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/invalid-fn-config-file/pkg/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/include-meta-resources/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/include-meta-resources-v1alpha2/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/include-meta-resources-v1alpha1/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/fnconfig-missing-name/pkg/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/fn-success-with-stderr/pkg/.expected/diff.patch Updates golden diff output
e2e/testdata/fn-eval/fn-config-file/pkg/.expected/config.yaml Updates image tag to :latest
e2e/testdata/fn-eval/fn-config-file-in-pkg/.expected/config.yaml Updates image tag to :latest
demos/demo-magic/license.txt Removes vendored MIT license text
.gitattributes Adds line ending normalization rules
Comments suppressed due to low confidence (1)

demos/demo-magic/license.txt:1

  • Removing a vendored third-party license file can create an attribution/compliance gap if demo-magic (or derived content) is still present/used in the repo. If the demo-magic content remains, the MIT license text should generally be retained (or moved to a centralized THIRD_PARTY_NOTICES/LICENSES location with a clear pointer) rather than deleted outright.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +1 to +2
# Set default behavior to automatically normalize line endings
* text=auto
Copy link

Copilot AI Mar 22, 2026

Choose a reason for hiding this comment

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

The PR description/title focus on splitting fn eval namespace behavior and updating fn eval E2E data, but this diff also removes a very large portion of e2e/testdata/fn-render/** fixtures and expected outputs (plus a vendored license). If the intent is truly “part 1: fn-eval only”, these fn-render deletions should be moved to a separate PR (or reverted here) to avoid mixing concerns and accidental loss of fn render coverage/data.

Copilot uses AI. Check for mistakes.
Comment on lines 15 to 18
testType: eval
image: ghcr.io/kptdev/krm-functions-catalog/set-namespace:v0.2.0
image: ghcr.io/kptdev/krm-functions-catalog/set-namespace:latest
args:
namespace: staging
Copy link

Copilot AI Mar 22, 2026

Choose a reason for hiding this comment

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

The PR description says the E2E suite is migrating to ghcr.io/kptdev/krm-functions/set-namespace:latest, but the updated fixtures here use ghcr.io/kptdev/krm-functions-catalog/set-namespace:latest. Please either (a) update the description to match the actual registry/repo being used, or (b) change the test data to the intended ghcr.io/kptdev/krm-functions/... image so the PR is self-consistent.

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +2
# Set default behavior to automatically normalize line endings
* text=auto
Copy link

Copilot AI Mar 22, 2026

Choose a reason for hiding this comment

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

Setting * text=auto applies line-ending normalization repo-wide and can cause broad, noisy churn in golden files (including .expected/*.patch and YAML) depending on contributor Git settings and platform. If the goal is specifically to prevent bash\r issues in CI, consider scoping normalization to just the script patterns (e.g., only *.sh, *.bat, *.cmd) or explicitly documenting/accepting that the whole repo will be normalized to avoid surprise diffs.

Suggested change
# Set default behavior to automatically normalize line endings
* text=auto
# Enforce consistent line endings for script files

Copilot uses AI. Check for mistakes.
Comment on lines +16 to +17
#image: ghcr.io/kptdev/krm-functions-catalog/wasm/set-namespace:latest
image: gcr.io/kpt-fn-demo/set-namespace:latest
Copy link

Copilot AI Mar 22, 2026

Choose a reason for hiding this comment

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

This test still points at gcr.io/kpt-fn-demo/set-namespace:latest, which is both mutable (:latest) and on gcr.io (which many orgs are trying to avoid/deprecate in favor of Artifact Registry or ghcr.io). If the intent is to validate “upstream latest” behavior consistently, consider switching this to the same official ghcr.io/kptdev/... lineage used elsewhere (or pinning by digest for stability if reproducibility is the priority).

Suggested change
#image: ghcr.io/kptdev/krm-functions-catalog/wasm/set-namespace:latest
image: gcr.io/kpt-fn-demo/set-namespace:latest
image: ghcr.io/kptdev/krm-functions-catalog/wasm/set-namespace:latest
#image: gcr.io/kpt-fn-demo/set-namespace:latest

Copilot uses AI. Check for mistakes.
@SurbhiAgarwal1 SurbhiAgarwal1 force-pushed the split/fn-eval-namespace branch from b46ec37 to 8ace373 Compare March 22, 2026 18:15
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Mar 22, 2026
This PR updates the kpt fn eval E2E test suite to use the :latest version of the set-namespace function.

Key changes:

- Add isUnknown() heuristic in internal/kptops/set-namespace.go to detect Custom Resources by API group, skipping namespace for unknown CRs without existing namespace

- Update Kptfile references from pinned set-namespace image tags to :latest (ghcr.io/kptdev/krm-functions/set-namespace:latest)

- Update .expected/ golden files to reflect new :latest behavior

- Add .gitattributes to force LF for *.sh and CRLF for *.bat/*.cmd, preventing bash errors in CI

- Update internal/fnruntime/runner_test.go to align with new function behavior

Part 1 of 2 from the original PR kptdev#4420 (fn-eval portion).

Signed-off-by: Surbhi <agarwalsurbhi1807@gmail.com>
Copilot AI review requested due to automatic review settings March 23, 2026 04:23
@SurbhiAgarwal1 SurbhiAgarwal1 force-pushed the split/fn-eval-namespace branch from 8ace373 to d312fb5 Compare March 23, 2026 04:23
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 45 out of 47 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

internal/kptops/set-namespace.go:75

  • File has unnecessary trailing blank lines at the end. The last 2 blank lines (lines 73-74) should be removed to maintain consistent code style.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +16 to 20
#image: ghcr.io/kptdev/krm-functions-catalog/wasm/set-namespace:latest
image: gcr.io/kpt-fn-demo/set-namespace:latest
args:
namespace: staging
allowWasm: true
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

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

The wasm-function test configuration uses a non-WASM image (gcr.io/kpt-fn-demo/set-namespace:latest) instead of the intended WASM image (which is commented out). The test is still marked with allowWasm: true, which is inconsistent. This appears to be intentional based on the PR migration from specific versions to :latest, but it should be clarified whether the WASM version is unavailable or whether this test should be updated differently. If the WASM version doesn't exist at the :latest tag, consider renaming the test or updating its configuration to reflect that it's testing non-WASM functionality.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/fn-runtime KRM function runtime go Pull requests that update Go code size:XL This PR changes 500-999 lines, ignoring generated files. Testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants