Skip to content

feat(syncer-service): onboard syncer-service component#3198

Open
ab-ghosh wants to merge 1 commit intotektoncd:mainfrom
ab-ghosh:onboard-syncer-service-upstream
Open

feat(syncer-service): onboard syncer-service component#3198
ab-ghosh wants to merge 1 commit intotektoncd:mainfrom
ab-ghosh:onboard-syncer-service-upstream

Conversation

@ab-ghosh
Copy link
Member

@ab-ghosh ab-ghosh commented Feb 4, 2026

Changes

This PR onboards the syncer-service component into the Tekton Operator with conditional deployment based on TektonConfig scheduler settings.

  • Introduces a new SyncerService Custom Resource (CR) to manage the syncer-service component
  • Deploys syncer-service conditionally, only when:
    • scheduler.multi-cluster-disabled is set to false
    • scheduler.multi-cluster-role is set to Hub

Submitter Checklist

These are the criteria that every PR should meet, please check them off as you
review them:

See the contribution guide for more details.

Release Notes

NONE

@tekton-robot tekton-robot added the release-note-none Denotes a PR that doesnt merit a release note. label Feb 4, 2026
@tekton-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign jkhelil after the PR has been reviewed.
You can assign the PR to them by writing /assign @jkhelil in a comment when ready.

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

@tekton-robot tekton-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Feb 4, 2026
@ab-ghosh
Copy link
Member Author

ab-ghosh commented Feb 4, 2026

Upgrade test results:

Before the upgrade
Screenshot 2026-02-02 at 12 23 18 PM

After the upgrade
Screenshot 2026-02-02 at 12 23 42 PM

Updating the TektonConfig with the scheduler configuration (multi-cluster-disabled: false and multi-cluster-role: Hub)

Screenshot 2026-02-02 at 12 24 13 PM

Updating the TektonConfig with the scheduler configuration (multi-cluster-disabled: true and multi-cluster-role: "")
Screenshot 2026-02-02 at 12 24 27 PM

@ab-ghosh ab-ghosh force-pushed the onboard-syncer-service-upstream branch from 77a2861 to 0d89eb4 Compare February 6, 2026 08:01
@anithapriyanatarajan
Copy link
Contributor

@ab-ghosh - Thanks for sharing the outcome of upgrade tests. Please includes tests to make sure that sync service behaves the expected way in hub and spoke cluster. Check the possibility incorporating tests in the following one atleast for each type : locations: https://github.com/tektoncd/operator/tree/main/test

Also see the possibility of incorporating unit tests.

// Syncer-service is enabled when:
// 1. Multi-cluster is NOT disabled (i.e., multi-cluster is enabled)
// 2. The role is Hub
func IsSyncerServiceEnabled(scheduler *v1alpha1.Scheduler) bool {
Copy link
Member

Choose a reason for hiding this comment

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

add unit test

@ab-ghosh ab-ghosh force-pushed the onboard-syncer-service-upstream branch from 0d89eb4 to 4014bda Compare February 9, 2026 16:16
Add conditional deployment of syncer-service based on TektonConfig:
- scheduler.multi-cluster-disabled: false
- scheduler.multi-cluster-role: Hub

Includes CRD, controllers, reconcilers for Kubernetes and OpenShift.

Signed-off-by: ab-ghosh <abghosh@redhat.com>
@ab-ghosh ab-ghosh force-pushed the onboard-syncer-service-upstream branch from 4014bda to fc75dd3 Compare February 9, 2026 17:36
@ab-ghosh
Copy link
Member Author

/kind feature

@tekton-robot tekton-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Feb 10, 2026
Copy link
Contributor

@khrm khrm left a comment

Choose a reason for hiding this comment

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

Looks good. But shouldn't we keep this to only OpenShift, like PAC?


SyncerService custom resource allows user to install and manage [Syncer Service][SyncerService].

Syncer Service is a Kubernetes controller that synchronizes secrets between manager (hub) and worker (spoke) nodes in multi-Kueue environments. It enables seamless multi-cluster pipeline execution by ensuring PipelineRuns have the necessary authentication secrets available on their target clusters.
Copy link
Contributor

Choose a reason for hiding this comment

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

can we add a doc reference to multi-Kueue environments which can provide few details about the multi-kueue/mult-kueue environments?

"existingNamespace", installerSetTargetNamespace,
"newNamespace", ss.Spec.TargetNamespace)
err := r.operatorClientSet.OperatorV1alpha1().TektonInstallerSets().
Delete(ctx, existingInstallerSet, metav1.DeleteOptions{})
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we move the delete operation into a separate function for better separation of concerns?

@tekton-robot tekton-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 12, 2026
@tekton-robot
Copy link
Contributor

@ab-ghosh: PR needs rebase.

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/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/feature Categorizes issue or PR as related to a new feature. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. release-note-none Denotes a PR that doesnt merit a release note. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants