Skip to content

Migrate to fs.FS as the sole resource loading interface#1561

Merged
istio-testing merged 3 commits intoistio-ecosystem:mainfrom
aslakknutsen:use-fs
Feb 3, 2026
Merged

Migrate to fs.FS as the sole resource loading interface#1561
istio-testing merged 3 commits intoistio-ecosystem:mainfrom
aslakknutsen:use-fs

Conversation

@aslakknutsen
Copy link
Copy Markdown
Contributor

What type of PR is this?

  • Enhancement / New Feature
  • Bug Fix
  • Refactor
  • Optimization
  • Test
  • Documentation Update

What this PR does / why we need it:

Migrate to fs.FS as the sole resource loading interface

Replace string-based ResourceDirectory with fs.FS throughout the codebase
to provide a unified abstraction for loading Helm charts and profiles.

This enables consumers to use embed.FS for bundled resources or os.DirFS
for filesystem-based resources through a single consistent interface.

@istio-testing
Copy link
Copy Markdown
Collaborator

Hi @aslakknutsen. Thanks for your PR.

I'm waiting for a istio-ecosystem or istio 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. Regular contributors should join the org to skip this step.

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.

@dgn
Copy link
Copy Markdown
Collaborator

dgn commented Feb 2, 2026

/ok-to-test

@aslakknutsen
Copy link
Copy Markdown
Contributor Author

/test e2e-kind

Comment on lines +21 to +22
// The Sail Operator itself does NOT import this package - it uses filesystem
// paths via os.DirFS instead, keeping the operator binary small.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This might keep the binary smaller but the container image must still have the charts so there may not be a size difference unless there's additional overhead in embedding the charts into the binary?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need to read from the os? Can we embed the charts into the Sail Operator as well? Or do the charts need to be dynamic?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think it's doesn't matter in the "1 build 1 container" pipeline. They will be in there either way, and if it's +-10mb doesn't really matter either.

There is a certain scenario perhaps, dev or some custom install where you might want to point to a directory to install from. I don't know if anyone is using it like that now, but it currently generally supports both modes.

If we want to go embedded with Sail Operator as well, we could use the embedded.fs if resourceDirectory is not set. It would increase the size of the binary, but allow for anyone to run external charts if needed for what ever reason.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

To run locally we pass --resource-dir=./resources so embedding would actually make this simpler by removing the need to pass the flag:

.PHONY: run
run: gen ## Run a controller from your host.
POD_NAMESPACE=${NAMESPACE} go run ./cmd/main.go --config-file=./hack/config.properties --resource-directory=./resources

If it simplifies things to always load from embedded assets, I'm all for it. I'm not sure either if the resource dir flag is being used today in a way that wouldn't be addressed by embedding. If we want to keep it in case someone is using it this way then we could default to reading from embedded assets and only read from the filesystem if it's specified? Or we could remove the flag altogether and only add back if someone requests it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I've changed the logic to swap to embedded.FS if resourceDirectory argument is missing.

Also removed the resourceDirectory reference from the Makefile and Dockerfile. Not sure if there are any other locations that would need updating as well, e.g. downstream images?

de860cb

Comment on lines +26 to +31
// LoadChart loads a Helm chart from an fs.FS at the specified path.
// This allows loading charts from embed.FS, os.DirFS, or any other fs.FS implementation.
//
// The chartPath should be the path to the chart directory within the filesystem,
// e.g., "v1.28.2/charts/istiod".
func LoadChart(resourceFS fs.FS, chartPath string) (*chart.Chart, error) {
Copy link
Copy Markdown
Contributor

@nrfox nrfox Feb 2, 2026

Choose a reason for hiding this comment

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

There's a helm issue to support this. Maybe long term we can get this added into helm itself.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Tests for this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Replace string-based ResourceDirectory with fs.FS throughout the codebase
to provide a unified abstraction for loading Helm charts and profiles.

Changes:
- ReconcilerConfig.ResourceDirectory string → ResourceFS fs.FS
- cmd/main.go wraps flag value with os.DirFS() at startup
- All controllers use ResourceFS directly (no path construction with ResourceDirectory)
- UpgradeOrInstallChart now takes (fs.FS, chartPath) instead of chartDir
- Renamed getChartDir() → getChartPath() (returns relative path)
- Added pkg/helm/fsloader.go with LoadChart() for loading charts from fs.FS

This enables consumers to use embed.FS for bundled resources or os.DirFS
for filesystem-based resources through a single consistent interface.

BREAKING CHANGE: ReconcilerConfig.ResourceDirectory replaced with ResourceFS fs.FS.
ChartManager.UpgradeOrInstallChart signature changed to accept fs.FS.

Signed-off-by: Aslak Knutsen <aslak@4fs.no>
Provide an embed.FS in the resources package so downstream consumers
can bundle Helm charts and profiles directly in their binary instead
of relying on filesystem paths.

The Sail Operator itself does not import this package, keeping its
binary size unchanged. This is intended for library consumers who
want self-contained binaries with embedded resources.

Usage:
  import "github.com/istio-ecosystem/sail-operator/resources"
  cfg := config.ReconcilerConfig{ResourceFS: resources.FS}

Signed-off-by: Aslak Knutsen <aslak@4fs.no>
@aslakknutsen aslakknutsen force-pushed the use-fs branch 4 times, most recently from d79b1c4 to 1630582 Compare February 2, 2026 20:36
Add embedded fs.FS from the resources package and use it as the default
resource source. The operator now embeds all Helm charts and profiles
directly in the binary, eliminating the need for external resource files.

Changes:
- Change --resource-directory default from /var/lib/sail-operator/resources to ""
- When --resource-directory is empty (default), use embedded resources.FS
- When --resource-directory is specified, use os.DirFS for filesystem access
- Removed --resource-directory from Makefile
- Removed --resource-directory from Dockerfile

This increases binary size by ~10MB but simplifies deployment by removing
the dependency on external resource files mounted into the container.

Signed-off-by: Aslak Knutsen <aslak@4fs.no>
@aslakknutsen
Copy link
Copy Markdown
Contributor Author

/test docs-test

@istio-testing istio-testing merged commit 4711092 into istio-ecosystem:main Feb 3, 2026
12 checks passed
@aslakknutsen aslakknutsen deleted the use-fs branch February 3, 2026 13:54
FilipB added a commit to FilipB/sail-operator that referenced this pull request Feb 4, 2026
istio-ecosystem#1561 added new
file to resources directory so we can't remove everything. We want to
remove just charts.
openshift-merge-bot bot pushed a commit to openshift-service-mesh/sail-operator that referenced this pull request Feb 4, 2026
istio-ecosystem#1561 added new
file to resources directory so we can't remove everything. We want to
remove just charts.
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 4, 2026
* upstream/main: (27 commits)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1546)
  fixing the step numbers in our docs (istio-ecosystem#1545)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1543)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1534)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1530)
  update eol istio versions (istio-ecosystem#1529)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 4, 2026
* upstream/main: (27 commits)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1546)
  fixing the step numbers in our docs (istio-ecosystem#1545)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1543)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1534)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1530)
  update eol istio versions (istio-ecosystem#1529)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 5, 2026
* upstream/main: (27 commits)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1546)
  fixing the step numbers in our docs (istio-ecosystem#1545)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1543)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1534)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1530)
  update eol istio versions (istio-ecosystem#1529)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 5, 2026
* upstream/main: (27 commits)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1546)
  fixing the step numbers in our docs (istio-ecosystem#1545)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1543)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1534)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1530)
  update eol istio versions (istio-ecosystem#1529)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 9, 2026
* upstream/main: (33 commits)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (33 commits)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (33 commits)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1549)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (34 commits)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  docs: Add comprehensive Istio Ambient Mode update and waypoint proxy procedures (istio-ecosystem#1279)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (35 commits)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (35 commits)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1551)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (36 commits)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (36 commits)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 10, 2026
* upstream/main: (36 commits)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (36 commits)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  Fix profile column status (istio-ecosystem#1553)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (37 commits)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (37 commits)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1557)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (38 commits)
  Improve scorecard test to avoid running on kind cluster inside OCP cl… (istio-ecosystem#1589)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (38 commits)
  Improve scorecard test to avoid running on kind cluster inside OCP cl… (istio-ecosystem#1589)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1558)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (39 commits)
  Add Claude /refactor command for code improvements (istio-ecosystem#1489)
  Improve scorecard test to avoid running on kind cluster inside OCP cl… (istio-ecosystem#1589)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 11, 2026
* upstream/main: (39 commits)
  Add Claude /refactor command for code improvements (istio-ecosystem#1489)
  Improve scorecard test to avoid running on kind cluster inside OCP cl… (istio-ecosystem#1589)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 12, 2026
* upstream/main: (39 commits)
  Add Claude /refactor command for code improvements (istio-ecosystem#1489)
  Improve scorecard test to avoid running on kind cluster inside OCP cl… (istio-ecosystem#1589)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Feb 12, 2026
* upstream/main: (39 commits)
  Add Claude /refactor command for code improvements (istio-ecosystem#1489)
  Improve scorecard test to avoid running on kind cluster inside OCP cl… (istio-ecosystem#1589)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1587)
  Adding TARGET_ARCH to tag definition when run on CI true (istio-ecosystem#1583)
  Expose "peerCaCrl" Ztunnel param added in Helm (istio-ecosystem#1578)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1579)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1577)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1576)
  feat(helm): add RenderChart functions for template rendering (istio-ecosystem#1575)
  refactor: extract shared reconciliation logic into pkg/reconcile (istio-ecosystem#1572)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1573)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1571)
  Add automation for updating EOL Istio versions (istio-ecosystem#1562)
  Fix e2e midstream CI mode (istio-ecosystem#1564)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1565)
  Migrate to fs.FS as the sole resource loading interface (istio-ecosystem#1561)
  Adding documentation for zero downtime ztunnel upgrade (istio-ecosystem#1552)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1563)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1560)
  Automator: Update dependencies in istio-ecosystem/sail-operator@main (istio-ecosystem#1559)
  ...
@dgn
Copy link
Copy Markdown
Collaborator

dgn commented Feb 12, 2026

/cherry-pick release-1.28

@istio-testing
Copy link
Copy Markdown
Collaborator

@dgn: new pull request created: #1594

Details

In response to this:

/cherry-pick release-1.28

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.

@istio-testing
Copy link
Copy Markdown
Collaborator

@dgn: new pull request could not be created: failed to create pull request against istio-ecosystem/sail-operator#release-1.28 from head istio-testing:cherry-pick-1561-to-release-1.28: status code 422 not one of [201], body: {"message":"Validation Failed","errors":[{"resource":"PullRequest","code":"custom","message":"A pull request already exists for istio-testing:cherry-pick-1561-to-release-1.28."}],"documentation_url":"https://docs.github.com/rest/pulls/pulls#create-a-pull-request","status":"422"}

Details

In response to this:

/cherry-pick release-1.28

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.

dgn pushed a commit to dgn/sail-operator that referenced this pull request Mar 17, 2026
…tem#1561)

* refactor(helm)!: migrate to fs.FS as the sole resource loading interface

Replace string-based ResourceDirectory with fs.FS throughout the codebase
to provide a unified abstraction for loading Helm charts and profiles.

Changes:
- ReconcilerConfig.ResourceDirectory string → ResourceFS fs.FS
- cmd/main.go wraps flag value with os.DirFS() at startup
- All controllers use ResourceFS directly (no path construction with ResourceDirectory)
- UpgradeOrInstallChart now takes (fs.FS, chartPath) instead of chartDir
- Renamed getChartDir() → getChartPath() (returns relative path)
- Added pkg/helm/fsloader.go with LoadChart() for loading charts from fs.FS

This enables consumers to use embed.FS for bundled resources or os.DirFS
for filesystem-based resources through a single consistent interface.

BREAKING CHANGE: ReconcilerConfig.ResourceDirectory replaced with ResourceFS fs.FS.
ChartManager.UpgradeOrInstallChart signature changed to accept fs.FS.

Signed-off-by: Aslak Knutsen <aslak@4fs.no>

* feat(resources): add embedded fs.FS for library consumers

Provide an embed.FS in the resources package so downstream consumers
can bundle Helm charts and profiles directly in their binary instead
of relying on filesystem paths.

The Sail Operator itself does not import this package, keeping its
binary size unchanged. This is intended for library consumers who
want self-contained binaries with embedded resources.

Usage:
  import "github.com/istio-ecosystem/sail-operator/resources"
  cfg := config.ReconcilerConfig{ResourceFS: resources.FS}

Signed-off-by: Aslak Knutsen <aslak@4fs.no>

* feat(resources): use embedded resources by default

Add embedded fs.FS from the resources package and use it as the default
resource source. The operator now embeds all Helm charts and profiles
directly in the binary, eliminating the need for external resource files.

Changes:
- Change --resource-directory default from /var/lib/sail-operator/resources to ""
- When --resource-directory is empty (default), use embedded resources.FS
- When --resource-directory is specified, use os.DirFS for filesystem access
- Removed --resource-directory from Makefile
- Removed --resource-directory from Dockerfile

This increases binary size by ~10MB but simplifies deployment by removing
the dependency on external resource files mounted into the container.

Signed-off-by: Aslak Knutsen <aslak@4fs.no>

---------

Signed-off-by: Aslak Knutsen <aslak@4fs.no>
Signed-off-by: Daniel Grimm <dgrimm@redhat.com>
FilipB added a commit to FilipB/sail-operator that referenced this pull request Mar 18, 2026
istio-ecosystem#1561 added new
file to resources directory so we can't remove everything. We want to
remove just charts.
FilipB added a commit to FilipB/sail-operator that referenced this pull request Mar 18, 2026
istio-ecosystem#1561 added new
file to resources directory so we can't remove everything. We want to
remove just charts.
openshift-merge-bot bot pushed a commit to openshift-service-mesh/sail-operator that referenced this pull request Mar 18, 2026
istio-ecosystem#1561 added new
file to resources directory so we can't remove everything. We want to
remove just charts.
openshift-merge-bot bot pushed a commit to openshift-service-mesh/sail-operator that referenced this pull request Mar 18, 2026
istio-ecosystem#1561 added new
file to resources directory so we can't remove everything. We want to
remove just charts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants