SRVKP-8974: # Multi-Cluster Support for Pipelines Console Plugin#926
Conversation
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: anwesha-palit-redhat The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
1 similar comment
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@anwesha-palit-redhat: This pull request references SRVKP-8974 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
/retest-required |
|
@anwesha-palit-redhat: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. I understand the commands that are listed here. |
Summary
This PR adds comprehensive multi-cluster support for Tekton pipeline logs on hub clusters, enabling users to view real-time logs and status information from PipelineRuns and TaskRuns executing on remote worker clusters.
Problem Statement
In a multi-cluster Tekton architecture, PipelineRuns are submitted to a hub cluster but execute on remote worker clusters. Previously, the console plugin could only fetch logs and status from resources in the local cluster's etcd, making it impossible to view logs or real-time status for PipelineRuns running on worker clusters.
Core Multi-Cluster Infrastructure
New API Layer (
multi-cluster-api.ts)/readyendpoint check to validate proxy availability before attempting connectionsHub Cluster Detection (
useIsHubCluster.ts)truefor development)Multi-Cluster TaskRuns Hook (
useMultiClusterTaskRuns.ts)pendingAdmission(409 status): PipelineRun waiting for worker cluster assignmentproxyUnavailable: Multi-cluster proxy connection failedEnhanced TaskRuns Data Fetching
useTaskRuns.tsRefactoringpipelineRunFinishedflag to stop polling once PipelineRun completespendingAdmissionandproxyUnavailablefor UI feedbackLogs Infrastructure Updates
Logs.tsx- Core Log ViewerretryMultiClusterWebSocketwith exponential backoff (up to 10 retries / 30 seconds)LogsWrapperComponent.tsxusePoll) for automatic Pod status updates during PipelineRun executionLogSnippetFromPod.tsx&LogSnippetBlock.tsxUI Status Indicators
Alert Banners
proxyUnavailable: "The multi-cluster connection is unavailable. Logs and status may be delayed until connection is restored."pendingAdmission: "PipelineRun is waiting to be admitted to a worker cluster"PipelineRunLogs(logs tab)PipelineRunVisualization(pipeline graph)Internationalization
Component Updates
PipelineRun Details Pages
PipelineRunCustomDetails.tsx: Passes hub context to error log snippetsPipelineRunDetailsPage.tsx: Determines PipelineRun finished state and passes to TaskRuns hookPipelineRunLogs.tsx: Major refactor from class component to functional component with hooks, integrated alert banners and hub cluster supportPipelineRunVisualization.tsx: Added alert banners for multi-cluster statusList Views
PipelineRunsRow.tsx: Updated to use new options-baseduseTaskRunsAPI withpipelineRunFinishedflagPipelineRow.tsx: Same as above for pipeline list viewTaskRunsList.tsx: Updated for new API signatureTaskRunsRow.tsx: Added conditional linking based on TaskRun status (only link to completed runs)Status Popovers
PipelineRunStatus.tsx: Passes hub context for log snippet fetchingTaskRunStatus.tsx: Same as aboveStatusPopoverContent.tsx: Enhanced to accept and forward hub cluster contextPipelineRunStatusPopoverContent.tsx: Fetches TaskRuns withpipelineRunFinishedflagOverview Components
PipelineRunItem.tsx: Passes hub context to log snippet blocksUtility & Helper Updates
utils.tsgetPipelineRunDatato filter outkueue.x-k8s.io/*labels when cloning PipelineRuns from hub clusters (prevents worker cluster admission conflicts)Type Definitions
coreTekton.tsrolefield to TektonConfig Spec for hub/spoke detectionTesting Considerations
Screen Recordings
Hub Cluster - Active PipelineRun with Logs
https://drive.google.com/file/d/1xfu_p78dQA52ZJON2YrSHZTcwj7MR3Iw/view?usp=sharing
Hub Cluster - PipelineRunDetails Page error block snippet for a failed PLR
MC_failed_PLR.mov
Hub Cluster - Pending Admission State
Multicluster_proxy_server_409_error.mov
Hub Cluster - Proxy Unavailable Scenario
Multicluster_proxy_server_not_available.mov
Hub Cluster - Download Logs / Download All Logs
https://drive.google.com/file/d/1TXz-ZqF0_z_3oq9ySOXUF5GAVCT8qMK9/view?usp=sharing
https://drive.google.com/file/d/1eWzlxJi6xFKbwZ2aInYB2FxXHQkZLeBS/view?usp=sharing
Hub Cluster - URL redirection and step highlight with taskname and step name
url_redirection_in_logs.mov
step-highlighting-in-logs.mov
Hub Cluster - Network error during live logs
mc_logs_api_error.mov
Single Cluster - Unchanged Behavior
https://drive.google.com/file/d/1pOx9Wc-gxO4Wjg8G-sYyIaARFAad5mxf/view?usp=sharing
Assisted by
Claude AI