Skip to content

fix: forward CLI overrides to in-cluster deploy for Git-based remote deploys#3777

Open
Ankitsinghsisodya wants to merge 1 commit into
knative:mainfrom
Ankitsinghsisodya:fix/git-deploy-forward-cli-overrides-3768
Open

fix: forward CLI overrides to in-cluster deploy for Git-based remote deploys#3777
Ankitsinghsisodya wants to merge 1 commit into
knative:mainfrom
Ankitsinghsisodya:fix/git-deploy-forward-cli-overrides-3768

Conversation

@Ankitsinghsisodya
Copy link
Copy Markdown
Contributor

Fixes #3768

Problem

When func deploy uses a Git-based pipeline (f.Build.Git.URL is set), CLI flags like --image-pull-secret, --service-account, and --deployer are silently ignored. The on-cluster func-deploy task step reads func.yaml directly from the cloned Git repo, which never contains in-memory CLI overrides — unlike the PVC-upload path fixed by #3663.

Solution

Forward the three CLI overrides as discrete Tekton params on the pipeline run and apply them as environment variables on the func-deploy task step. The in-cluster deploy binary reads these env vars and applies them over the values loaded from func.yaml.

How it works

func deploy --image-pull-secret my-secret --deployer raw
  → templateData.ImagePullSecret / Deployer populated
  → PipelineRun param: imagePullSecret=my-secret, deployer=raw
  → Pipeline threads params to Task: IMAGE_PULL_SECRET, DEPLOYER
  → func-deploy step env: FUNC_IMAGE_PULL_SECRET, FUNC_DEPLOYER
  → deploy binary: os.Getenv overrides f loaded from committed func.yaml

The env vars are only applied when non-empty, so existing behaviour is unchanged when no overrides are passed.

Changes

  • cmd/func-util/main.go — read FUNC_IMAGE_PULL_SECRET, FUNC_SERVICE_ACCOUNT, FUNC_DEPLOYER env vars after loading func.yaml and apply them over the struct before deploying
  • task-buildpack.yaml.tmpl / task-s2i.yaml.tmpl — add IMAGE_PULL_SECRET, SERVICE_ACCOUNT, DEPLOYER params; set corresponding FUNC_* env vars on the func-deploy step
  • templates_pack.go / templates_s2i.go — add the three params to the Pipeline spec and thread them to the task; add them to the PipelineRun params
  • templates.go — add ImagePullSecret, ServiceAccountName, Deployer to templateData; populate from f.Deploy.* in createAndApplyPipelineRunTemplate

Notes

This commit enhances the deployment process by allowing CLI-specified overrides for image pull secrets, service accounts, and deployer types to be forwarded to the in-cluster deployment step. The changes include:

- Updated `main.go` to read environment variables for `FUNC_IMAGE_PULL_SECRET`, `FUNC_SERVICE_ACCOUNT`, and `FUNC_DEPLOYER`.
- Modified Tekton task templates (`task-buildpack.yaml.tmpl`, `task-s2i.yaml.tmpl`) to include new parameters for these overrides.
- Adjusted template data structures in `templates_pack.go` and `templates_s2i.go` to accommodate the new parameters.

These enhancements ensure that user-defined configurations are properly applied during deployment, improving flexibility and usability.
Copilot AI review requested due to automatic review settings May 17, 2026 10:05
@knative-prow knative-prow Bot requested review from dsimansk and jrangelramos May 17, 2026 10:05
@knative-prow
Copy link
Copy Markdown

knative-prow Bot commented May 17, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: Ankitsinghsisodya
Once this PR has been reviewed and has the lgtm label, please assign matzew for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow knative-prow Bot added size/L 🤖 PR changes 100-499 lines, ignoring generated files. needs-ok-to-test 🤖 Needs an org member to approve testing labels May 17, 2026
@knative-prow
Copy link
Copy Markdown

knative-prow Bot commented May 17, 2026

Hi @Ankitsinghsisodya. Thanks for your PR.

I'm waiting for a knative member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Tip

We noticed you've done this a few times! Consider joining the org to skip this step and gain /lgtm and other bot rights. We recommend asking approvers on your previous PRs to sponsor you.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.04%. Comparing base (584c11e) to head (99e41fc).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3777      +/-   ##
==========================================
+ Coverage   57.03%   57.04%   +0.01%     
==========================================
  Files         182      182              
  Lines       21376    21380       +4     
==========================================
+ Hits        12191    12196       +5     
+ Misses       7953     7952       -1     
  Partials     1232     1232              
Flag Coverage Δ
e2e 35.82% <75.00%> (+0.01%) ⬆️
e2e go 31.42% <100.00%> (+0.01%) ⬆️
e2e node 27.26% <100.00%> (+0.01%) ⬆️
e2e python 31.79% <100.00%> (+0.01%) ⬆️
e2e quarkus 27.38% <100.00%> (+0.01%) ⬆️
e2e rust 26.78% <100.00%> (+0.01%) ⬆️
e2e springboot 25.31% <100.00%> (-0.01%) ⬇️
e2e typescript 27.37% <100.00%> (+0.01%) ⬆️
e2e-config-ci 28.15% <0.00%> (-0.01%) ⬇️
integration 17.20% <100.00%> (+0.02%) ⬆️
unit macos-14 45.10% <100.00%> (+<0.01%) ⬆️
unit macos-latest 45.10% <100.00%> (+<0.01%) ⬆️
unit ubuntu-24.04-arm 45.34% <100.00%> (+0.01%) ⬆️
unit ubuntu-latest 46.05% <100.00%> (+<0.01%) ⬆️
unit windows-latest 45.15% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@lkingland
Copy link
Copy Markdown
Member

/ok-to-test

@knative-prow knative-prow Bot added ok-to-test 🤖 Non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test 🤖 Needs an org member to approve testing labels May 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test 🤖 Non-member PR verified by an org member that is safe to test. size/L 🤖 PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remote Git-based deploy doesn't forward CLI overrides like --image-pull-secret to the in-cluster func deploy

2 participants