Skip to content

Mark openshift & xKS e2e tests #1216

Open
anandrkskd wants to merge 10 commits into
redhat-developer:masterfrom
anandrkskd:mark-openshift-xks-tests
Open

Mark openshift & xKS e2e tests #1216
anandrkskd wants to merge 10 commits into
redhat-developer:masterfrom
anandrkskd:mark-openshift-xks-tests

Conversation

@anandrkskd

@anandrkskd anandrkskd commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind enhancement

What does this PR do / why we need it:
Operator currently only tested on OpenShift. This PR enables running e2e suite on non-OpenShift Kubernetes (xKS) by separating OpenShift-dependent tests via labels. Run --label-filter="!openshift" on xKS to skip tests requiring Routes/ConsoleLinks/SCCs/OLM. Broadens CI coverage to vanilla k8s environments.

Currently we are only labellling tests that are passing on openshift and failing on xks, this currenlty helps with the filtering.

Have you updated the necessary documentation?

  • Documentation update is required by this PR.
  • Documentation has been updated.

Which issue(s) this PR fixes:

Fixes #?

Test acceptance criteria:

  • Unit Test
  • E2E Test

How to test changes / Special notes to the reviewer:
NON_OLM=true ./bin/ginkgo -v --trace -p --timeout 240m -r ./test/openshift/e2e/ginkgo/sequential
NON_OLM=true ./bin/ginkgo -v --trace -p --timeout 240m -r ./test/openshift/e2e/ginkgo/parallel

@openshift-ci

openshift-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci Bot added the kind/enhancement New feature or request label Jul 13, 2026
@openshift-ci

openshift-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign jannfis 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

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • New Features

    • Local E2E Ginkgo CLI install now uses the Ginkgo version from the project’s Go module.
    • Added XKS-specific Ginkgo E2E targets with label-based filtering (configurable via XKS_LABEL_FILTER).
  • Tests

    • Added/standardized Ginkgo openshfit/HA/conversionWebhook/notOnXKS labels to improve test selection.
    • Improved OpenShift E2E cleanup/restore so OpenShift-only steps run only on OpenShift.
  • Documentation

    • Added a “Test Labels” section explaining label filtering and available labels.
  • Chores

    • Enhanced kind CI logging by saving step output to files and uploading them as artifacts.

Walkthrough

The PR aligns the Ginkgo CLI with go.mod, adds XKS-filtered E2E targets, gates OpenShift-only fixture cleanup, isolates toolchain validation in a temporary namespace, captures kind CI logs, and labels E2E tests for environment and capability-based selection.

Changes

OpenShift E2E test and tooling updates

Layer / File(s) Summary
Ginkgo execution and CI logging
Makefile, .github/workflows/kind-ci-automation.yaml, test/kind-config.yaml, test/openshift/e2e/README.md
Ginkgo installation uses the Go module version, XKS targets apply configurable label filtering, and kind CI captures and uploads build, deployment, verification, and E2E logs. Kind topology and label-filtering documentation are added.
Environment-specific fixture cleanup
test/openshift/e2e/ginkgo/fixture/fixture.go
OpenShift-only Argo CD restoration, cleanup, and readiness checks are gated by RunningOnOpenShift(), while IsOperatorRunningOnOLM() detects OLM-managed operators.
Namespace-scoped toolchain validation
test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go
The test creates an Argo CD instance in a temporary namespace and retrieves component versions from that namespace.
Parallel E2E labels
test/e2e/argocd_route_test.go, test/openshift/e2e/ginkgo/parallel/*
Parallel tests gain openshfit, notOnXKS, conversionWebhook, dex, or HA labels, and one skip message is revised.
Sequential E2E labels
test/openshift/e2e/ginkgo/sequential/*
Sequential tests gain openshfit labels without changing their test bodies.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Suggested reviewers: chetan-rns, varshab1210

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: labeling OpenShift and xKS E2E tests.
Description check ✅ Passed The description matches the PR intent by explaining OpenShift labels and xKS filtering for E2E tests.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@anandrkskd
anandrkskd marked this pull request as ready for review July 17, 2026 06:57
@openshift-ci
openshift-ci Bot requested review from chetan-rns and varshab1210 July 17, 2026 06:58

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go (1)

134-165: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Add Label("openshift") to this spec This test uses Route and oc, so it should be excluded from non-OpenShift runs; otherwise --label-filter="!openshift" can still pick it up and fail on xKS.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go` around
lines 134 - 165, Add the Ginkgo Label("openshift") to the spec containing the
Route and oc-based toolchain version checks, ensuring it is excluded when the
!openshift label filter is used. Keep the existing test logic unchanged.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/openshift/e2e/ginkgo/fixture/fixture.go`:
- Around line 174-175: Move the custom-argocd-role deletion in the fixture
cleanup flow before the OpenShift-specific gate, near the setup preceding line
114. Keep deletion of this standard ClusterRole unconditional so xKS runs also
remove stale state, while leaving only OpenShift-specific resource cleanup
inside the gate.
- Around line 996-1009: Update IsOperatorRunningOnOLM to determine whether the
tested operator is OLM-managed by inspecting its relevant Subscription/CSV or
ownership chain, rather than counting cluster-wide CRDs whose group contains
operators.coreos.com. Preserve the false result for manually deployed operators
and return true only when the operator’s own resources demonstrate OLM
ownership.

In `@test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go`:
- Around line 93-104: After creating the ArgoCD resource in the validation
setup, wait until it reports Available and its server endpoint is ready before
invoking argocd version --server. Update the readiness flow around getPodName
and serverRoute to check the Argo CD status condition, not merely pod Running
state or route existence, while preserving the existing version-check behavior
once availability is confirmed.

In `@test/openshift/e2e/ginkgo/parallel/1-050_validate_sso_test.go`:
- Line 70: Apply the existing "openshift" label to the sibling SSO test at the
second It block, preferably by labeling the surrounding Context so both specs
that set OpenShiftOAuth: true are excluded by --label-filter="!openshift".

In
`@test/openshift/e2e/ginkgo/parallel/1-055_drop_resource_customizations_test.go`:
- Line 49: Remove the "openshift" label from the test case in the It block for
resource customization conversion, or replace it with the appropriate
conversion-webhook capability label if one exists. Keep the test classified as a
general namespace-scoped Argo CD v1alpha1-to-v1beta1 conversion test.

In
`@test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go`:
- Line 61: Align labels with platform requirements across the three tests: in
test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go:61,
add Label("openshift") to the HA AutoTLS test; in
test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go:52,
remove Label("openshift"); and in
test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go:50,
remove Label("openshift") while preserving the existing RunningOnOpenShift()
guard.

In
`@test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go`:
- Line 49: Update the spec declaration in the alpha-to-beta conversion test to
include the conversionWebhook label alongside openshift, ensuring it is selected
by conversionWebhook-filtered runs like the neighboring conversion specs.

In
`@test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go`:
- Line 69: Remove the openshift label from the affected portable tests: the
ApplicationSet RBAC test in
test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go:69,
the image policy test in
test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go:52,
the missing-Secret CA-trust test in
test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go:103,
and the namespace validation test in
test/openshift/e2e/ginkgo/sequential/1-122_validate_namespace_test.go:74. Apply
the same label removal to any additional affected ranges covered by the per-file
comments.

In
`@test/openshift/e2e/ginkgo/sequential/1-051_validate_argocd_agent_principal_test.go`:
- Line 542: Apply the openshift label to the adjacent route-toggle Ginkgo spec
that enables, disables, and recreates an OpenShift Route, matching the label on
“should handle route enabled configuration correctly.” Ensure route-dependent
behavior is skipped when the label filter excludes OpenShift.

---

Outside diff comments:
In `@test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go`:
- Around line 134-165: Add the Ginkgo Label("openshift") to the spec containing
the Route and oc-based toolchain version checks, ensuring it is excluded when
the !openshift label filter is used. Keep the existing test logic unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 2bff0d3c-c021-470a-89cb-c31c0e40a0aa

📥 Commits

Reviewing files that changed from the base of the PR and between ed6cda4 and 8e74cae.

📒 Files selected for processing (74)
  • Makefile
  • test/e2e/argocd_route_test.go
  • test/openshift/e2e/ginkgo/fixture/fixture.go
  • test/openshift/e2e/ginkgo/parallel/1-001_alpha_to_beta_dex_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_alpha_to_beta_sso_conflict_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_validate_console_link_test.go
  • test/openshift/e2e/ginkgo/parallel/1-004_beta_to_alpha_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_metrics_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_route_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-023_validate_repo_server_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-030_validate_reencrypt_test.go
  • test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go
  • test/openshift/e2e/ginkgo/parallel/1-041_validate_argocd_sync_alert_test.go
  • test/openshift/e2e/ginkgo/parallel/1-042_validate_status_host_test.go
  • test/openshift/e2e/ginkgo/parallel/1-050_validate_sso_test.go
  • test/openshift/e2e/ginkgo/parallel/1-053_validate_cluster_admin_rbac_test.go
  • test/openshift/e2e/ginkgo/parallel/1-054_validate_deploymentconfig_test.go
  • test/openshift/e2e/ginkgo/parallel/1-055_drop_resource_customizations_test.go
  • test/openshift/e2e/ginkgo/parallel/1-063_validate_dex_liveness_probe_test.go
  • test/openshift/e2e/ginkgo/parallel/1-065_validate_redis_ha_anti_affinity_test.go
  • test/openshift/e2e/ginkgo/parallel/1-067_validate_redis_secure_comm_no_autotls_ha_test.go
  • test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go
  • test/openshift/e2e/ginkgo/parallel/1-081_validate_applicationset_deployment_test.go
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go
  • test/openshift/e2e/ginkgo/parallel/1-096-validate_home_env_argocd_controller_test.go
  • test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-109_validate_reencrypt_termination_policy_test.go
  • test/openshift/e2e/ginkgo/parallel/1-125_validate_server_serving_cert_annotation_restore_test.go
  • test/openshift/e2e/ginkgo/parallel/1-126_validate_servicemonitor_metrics_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-002-validate_backend_service_test.go
  • test/openshift/e2e/ginkgo/sequential/1-004_validate_argocd_installation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-006_validate_machine_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-008_validate-4.9CI-Failures_test.go
  • test/openshift/e2e/ginkgo/sequential/1-010_validate-ootb-manage-other-namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go
  • test/openshift/e2e/ginkgo/sequential/1-020_validate_redis_ha_nonha_test.go
  • test/openshift/e2e/ginkgo/sequential/1-026-validate_backend_service_permissions_test.go
  • test/openshift/e2e/ginkgo/sequential/1-027_validate_operand_from_git_test.go
  • test/openshift/e2e/ginkgo/sequential/1-028-validate_run_on_infra_test.go
  • test/openshift/e2e/ginkgo/sequential/1-035_validate_argocd_secret_repopulate_test.go
  • test/openshift/e2e/ginkgo/sequential/1-036_validate_role_rolebinding_for_source_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-040_validate_quoted_RBAC_group_names_test.go
  • test/openshift/e2e/ginkgo/sequential/1-051_validate_argocd_agent_principal_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_argocd_agent_agent_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_rolebinding_number_test.go
  • test/openshift/e2e/ginkgo/sequential/1-053_validate_argocd_agent_principal_connected_test.go
  • test/openshift/e2e/ginkgo/sequential/1-058_validate_notifications_source_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-059_validate_argocd_agent_terminal_streaming_test.go
  • test/openshift/e2e/ginkgo/sequential/1-064_validate_tcp_reset_error_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_SCC_HA_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_node_selectors_test.go
  • test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go
  • test/openshift/e2e/ginkgo/sequential/1-083_validate_apps_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-084_validate_prune_templates.go
  • test/openshift/e2e/ginkgo/sequential/1-086_validate_default_argocd_role_test.go
  • test/openshift/e2e/ginkgo/sequential/1-092_validate_workload_status_monitoring_alert.go
  • test/openshift/e2e/ginkgo/sequential/1-100_validate_rollouts_resources_creation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-101_validate_rollout_policyrules_test.go
  • test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go
  • test/openshift/e2e/ginkgo/sequential/1-105_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-106_validate_argocd_metrics_controller_test.go
  • test/openshift/e2e/ginkgo/sequential/1-107_validate_redis_scc_test.go
  • test/openshift/e2e/ginkgo/sequential/1-110_validate_podsecurity_alerts_test.go
  • test/openshift/e2e/ginkgo/sequential/1-111_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-112_validate_rollout_plugin_support_test.go
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go
  • test/openshift/e2e/ginkgo/sequential/1-120_validate_running_must_gather.go
  • test/openshift/e2e/ginkgo/sequential/1-121-valiate_resource_constraints_gitopsservice_test.go
  • test/openshift/e2e/ginkgo/sequential/1-122_validate_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-123_validate_list_order_comparison_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • argoproj-labs/argocd-operator (manual)

Comment thread test/openshift/e2e/ginkgo/fixture/fixture.go Outdated
Comment on lines +996 to +1009
// IsOperatorRunningOnOLM returns true if the operator is running on OLM, false otherwise.
func IsOperatorRunningOnOLM() bool {
k8sClient, _ := utils.GetE2ETestKubeClient()

crdList := crdv1.CustomResourceDefinitionList{}
Expect(k8sClient.List(context.Background(), &crdList)).To(Succeed())

olmAPIsFound := 0
for _, crd := range crdList.Items {
if strings.Contains(crd.Spec.Group, "operators.coreos.com") {
olmAPIsFound++
}
}
return olmAPIsFound > 0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n -C4 --type go '\bIsOperatorRunningOnOLM\s*\(' .
rg -n -C4 --type go 'ClusterServiceVersion|Subscription|OwnerReferences|gitops-operator' test/openshift/e2e/ginkgo

Repository: redhat-developer/gitops-operator

Length of output: 50389


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '\n## IsOperatorRunningOnOLM definition\n'
sed -n '980,1035p' test/openshift/e2e/ginkgo/fixture/fixture.go

printf '\n## OLM-related helpers/usages in fixture tree\n'
rg -n -C3 'IsOperatorRunningOnOLM|ClusterServiceVersion|Subscription|OwnerReferences|ManagedFields|operator Subscription|operator Deployment' test/openshift/e2e/ginkgo/fixture test/openshift/e2e/ginkgo/sequential test/openshift/e2e/ginkgo/parallel

Repository: redhat-developer/gitops-operator

Length of output: 50388


test/openshift/e2e/ginkgo/fixture/fixture.go:996-1009 Check the operator’s install source, not cluster-wide OLM CRDs. This returns true on any OLM-enabled cluster, so a manually deployed operator can be misclassified as OLM-managed. Use the operator’s Subscription/CSV or ownership chain instead.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/openshift/e2e/ginkgo/fixture/fixture.go` around lines 996 - 1009, Update
IsOperatorRunningOnOLM to determine whether the tested operator is OLM-managed
by inspecting its relevant Subscription/CSV or ownership chain, rather than
counting cluster-wide CRDs whose group contains operators.coreos.com. Preserve
the false result for manually deployed operators and return true only when the
operator’s own resources demonstrate OLM ownership.

Source: Path instructions

Comment on lines +93 to +104
argocdInstance := &argov1beta1api.ArgoCD{
ObjectMeta: metav1.ObjectMeta{
Name: "openshift-gitops",
Namespace: ns.Name,
},
Spec: argov1beta1api.ArgoCDSpec{
SSO: &argov1beta1api.ArgoCDSSOSpec{
Provider: "dex",
},
},
}
Expect(k8sClient.Create(context.Background(), argocdInstance)).To(Succeed())

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n -C4 --type go 'Server\.Route|BeAvailable|k8sClient\.Create|ExistByName|getPodName' \
  test/openshift/e2e/ginkgo

Repository: redhat-developer/gitops-operator

Length of output: 50389


🏁 Script executed:

#!/bin/bash
set -euo pipefail

file="test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go"

echo "== file outline =="
ast-grep outline "$file" --view expanded || true

echo
echo "== relevant lines 1-180 =="
sed -n '1,180p' "$file" | cat -n

echo
echo "== route / availability / query usage =="
rg -n 'Server\.Route|BeAvailable|openshift-gitops-server|Route|Ready|Running|k8sClient\.Create|getPodName|ExistByName|Eventually\(' "$file"

Repository: redhat-developer/gitops-operator

Length of output: 8929


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Server.Route usage in this repo =="
rg -n 'Server\.Route\.Enabled|Route:\s*&argov1beta1api\.ArgoCDRouteSpec|RouteEnabled|route enabled|BeAvailable\(\)' .

echo
echo "== ArgoCDSpec definition =="
spec_file=$(fd -a '.*v1beta1.*\.go$' api 2>/dev/null | head -n 20)
printf '%s\n' "$spec_file"

Repository: redhat-developer/gitops-operator

Length of output: 38050


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== files containing ArgoCDSpec and route defaults =="
fd -a '.*\.go$' api controllers test | sed -n '1,120p'

echo
echo "== repo-wide route enabled/default searches =="
rg -n 'Server\.Route\.Enabled|Route\s*:\s*&|BeAvailable\(\)|Default.*Route|route.*enabled' api controllers test config .

Repository: redhat-developer/gitops-operator

Length of output: 50390


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== route enabled / availability / defaulting references =="
rg -n 'Server\.Route\.Enabled|RouteEnabled|BeAvailable\(|Available\)|Ready|Default.*Route|Route:\s*&' api controllers test config

echo
echo "== ArgoCDSpec and Route-related types =="
fd -a 'v1beta1*.go' api | head -n 20

Repository: redhat-developer/gitops-operator

Length of output: 50388


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== route-related defaults and examples =="
rg -n 'Route\.Enabled|Server:|Route:' api config controllers test | sed -n '1,220p'

echo
echo "== similar e2e patterns around availability =="
rg -n 'BeAvailable\(\)|ExistByName\(\)' test/openshift/e2e/ginkgo | sed -n '1,220p'

Repository: redhat-developer/gitops-operator

Length of output: 50388


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== ArgoCD creations without explicit Server.Route.Enabled =="
rg -n -U 'ArgoCD\{[\s\S]{0,220}?SSO:\s*&argov1beta1api\.ArgoCDSSOSpec' test/openshift/e2e/ginkgo | sed -n '1,200p'

echo
echo "== files where route is checked after create =="
rg -n 'Route\{ObjectMeta: metav1\.ObjectMeta\{Name: "openshift-gitops-server"|BeAvailable\(\)' test/openshift/e2e/ginkgo | sed -n '1,200p'

Repository: redhat-developer/gitops-operator

Length of output: 36386


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== api tree =="
fd -t f . api | sed -n '1,200p'

echo
echo "== route references in api =="
rg -n 'Route|Dex|SSO|Available' api

Repository: redhat-developer/gitops-operator

Length of output: 324


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== server version / route host usages =="
rg -n 'argocd version --short --server|serverRoute\.Spec\.Host|openshift-gitops-server' test/openshift/e2e/ginkgo

echo
echo "== ArgoCD create patterns in toolchain tests =="
sed -n '86,170p' test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go | cat -n

Repository: redhat-developer/gitops-operator

Length of output: 9187


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== controllers/argocd/argocd.go around getArgoServerSpec =="
sed -n '140,290p' controllers/argocd/argocd.go | cat -n

echo
echo "== test/openshift/e2e/ginkgo/fixture/argocd/fixture.go BeAvailable =="
sed -n '1,140p' test/openshift/e2e/ginkgo/fixture/argocd/fixture.go | cat -n

echo
echo "== 1-031 around route host and waits =="
sed -n '86,170p' test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go | cat -n

Repository: redhat-developer/gitops-operator

Length of output: 15636


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== controllers/argocd/argocd.go getArgoServerSpec references =="
rg -n -C3 'getArgoServerSpec|Route: argoapp\.ArgoCDRouteSpec|BeAvailable\(' controllers/argocd/argocd.go test/openshift/e2e/ginkgo/fixture/argocd/fixture.go

echo
echo "== small excerpt of the relevant lines =="
sed -n '160,190p' controllers/argocd/argocd.go | cat -n
sed -n '60,110p' test/openshift/e2e/ginkgo/fixture/argocd/fixture.go | cat -n

Repository: redhat-developer/gitops-operator

Length of output: 5536


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== controller code that mutates defaults / route settings =="
rg -n -C4 'Server\.Route\.Enabled|getArgoServerSpec|Route\.Enabled =|Route:.*Enabled|openshift-gitops' controllers test/openshift/e2e/ginkgo | sed -n '1,240p'

echo
echo "== 1-031 rest of file for any availability wait =="
sed -n '170,260p' test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go | cat -n

echo
echo "== 1-031 fixture helpers used in test =="
rg -n -C3 'WaitForAllPodsInTheNamespaceToBeReady|BeAvailable|HavePhase|GetOpenShiftGitOpsNSArgoCD' test/openshift/e2e/ginkgo/fixture test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go

Repository: redhat-developer/gitops-operator

Length of output: 35974


Wait for Argo CD to become Available before using argocd version --server. getPodName only checks Running, and serverRoute only checks object existence; this can race API readiness and make the version check flaky.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go` around
lines 93 - 104, After creating the ArgoCD resource in the validation setup, wait
until it reports Available and its server endpoint is ready before invoking
argocd version --server. Update the readiness flow around getPodName and
serverRoute to check the Argo CD status condition, not merely pod Running state
or route existence, while preserving the existing version-check behavior once
availability is confirmed.

Source: Path instructions

}
})
It("ensures the conditions in status when external Authentication is enabled on clusters; above 4.20 by default in openshit is enabled", func() {
It("ensures the conditions in status when external Authentication is enabled on clusters; above 4.20 by default in openshift is enabled", Label("openshift"), func() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Label the sibling OpenShift SSO test as well.

The second It block at Line 124 also sets OpenShiftOAuth: true but is not labeled. With --label-filter="!openshift", it will still run on xKS and can fail; apply the label to the surrounding Context or to both specs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/openshift/e2e/ginkgo/parallel/1-050_validate_sso_test.go` at line 70,
Apply the existing "openshift" label to the sibling SSO test at the second It
block, preferably by labeling the surrounding Context so both specs that set
OpenShiftOAuth: true are excluded by --label-filter="!openshift".

})

It("verifies that resource customization is dropped in conversion from ArgoCD v1alpha1 to v1beta1", func() {
It("verifies that resource customization is dropped in conversion from ArgoCD v1alpha1 to v1beta1", Label("openshift"), func() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Do not classify this conversion test as OpenShift-only.

This test uses namespace-scoped Argo CD resources and conversion APIs but no OpenShift-specific capability. With --label-filter="!openshift", it will be skipped on xKS unnecessarily; remove this label or use a capability-specific label for the conversion webhook.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/openshift/e2e/ginkgo/parallel/1-055_drop_resource_customizations_test.go`
at line 49, Remove the "openshift" label from the test case in the It block for
resource customization conversion, or replace it with the appropriate
conversion-webhook capability label if one exists. Keep the test classified as a
general namespace-scoped Argo CD v1alpha1-to-v1beta1 conversion test.

})

It("verifying when HA is enabled that Argo CD starts successfully in HA mode, and that AutoTLS can be enabled", func() {
It("verifying when HA is enabled that Argo CD starts successfully in HA mode, and that AutoTLS can be enabled", Label("HA"), func() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Align platform labels with actual test requirements.

The current labels cause incorrect selection when running xKS with --label-filter="!openshift":

  • test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go#L61-L61: add Label("openshift"), because the test configures Redis.AutoTLS = "openshift".
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go#L52-L52: remove Label("openshift"); the supplied test uses only generic Kubernetes resources and should remain available on xKS.
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go#L50-L50: remove Label("openshift") unless this test is intentionally excluded from xKS; its OpenShift-specific assertion is already guarded by RunningOnOpenShift().
📍 Affects 3 files
  • test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go#L61-L61 (this comment)
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go#L52-L52
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go#L50-L50
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go`
at line 61, Align labels with platform requirements across the three tests: in
test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go:61,
add Label("openshift") to the HA AutoTLS test; in
test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go:52,
remove Label("openshift"); and in
test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go:50,
remove Label("openshift") while preserving the existing RunningOnOpenShift()
guard.

})

It("ensures that creation of a v1alpha1 ArgoCD CR with SSO fields will be translated into a v1beta1 ArgoCD CR via webhook", func() {
It("ensures that creation of a v1alpha1 ArgoCD CR with SSO fields will be translated into a v1beta1 ArgoCD CR via webhook", Label("openshift"), func() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add the conversionWebhook label.

This spec explicitly validates alpha-to-beta conversion via the webhook, but is tagged only openshift. It will therefore be omitted from conversionWebhook-filtered runs, unlike the neighboring conversion specs.

Proposed fix
-		It("ensures that creation of a v1alpha1 ArgoCD CR with SSO fields will be translated into a v1beta1 ArgoCD CR via webhook", Label("openshift"), func() {
+		It("ensures that creation of a v1alpha1 ArgoCD CR with SSO fields will be translated into a v1beta1 ArgoCD CR via webhook", Label("openshift", "conversionWebhook"), func() {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
It("ensures that creation of a v1alpha1 ArgoCD CR with SSO fields will be translated into a v1beta1 ArgoCD CR via webhook", Label("openshift"), func() {
It("ensures that creation of a v1alpha1 ArgoCD CR with SSO fields will be translated into a v1beta1 ArgoCD CR via webhook", Label("openshift", "conversionWebhook"), func() {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go`
at line 49, Update the spec declaration in the alpha-to-beta conversion test to
include the conversionWebhook label alongside openshift, ensuring it is selected
by conversionWebhook-filtered runs like the neighboring conversion specs.

Comment thread test/openshift/e2e/ginkgo/sequential/1-052_validate_rolebinding_number_test.go Outdated
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
assisted-by: claude-code
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
@anandrkskd
anandrkskd force-pushed the mark-openshift-xks-tests branch from 8e74cae to dbcc49c Compare July 20, 2026 09:41

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/kind-ci-automation.yaml (1)

18-20: 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Disable credential persistence in checkout.

To prevent the GitHub token from being persisted in the local Git configuration and potentially exposed in subsequent steps or artifacts, configure actions/checkout to not persist credentials.

🛡️ Proposed fix
       - name: Checkout code
         uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
+        with:
+          persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/kind-ci-automation.yaml around lines 18 - 20, Update the
actions/checkout step to disable credential persistence by setting its
persist-credentials option to false, while keeping the pinned checkout action
version unchanged.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/kind-ci-automation.yaml:
- Around line 9-12: Add a top-level permissions declaration near the workflow’s
existing global env settings, configuring the workflow token with read-only
repository contents access and no broader default permissions. Keep the existing
IMG and LOG_DIR environment values unchanged.

In
`@test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go`:
- Line 43: Label every OpenShift/OLM-dependent spec with notOnXKS: update the
second It declaration in
test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go
at line 103, the subscription-level spec in
test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go
at line 118, and the operator-level environment-variable spec in
test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go at
line 241; the anchor site at
test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go:43
is context only.

In
`@test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go`:
- Line 84: Remove the notOnXKS label from the affected portable Kubernetes
specs:
test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go:84,
test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go:52,
and both namespace tests at
test/openshift/e2e/ginkgo/sequential/1-122_validate_namespace_test.go:74 and
:166. Preserve each spec body and all other labels unchanged.

---

Outside diff comments:
In @.github/workflows/kind-ci-automation.yaml:
- Around line 18-20: Update the actions/checkout step to disable credential
persistence by setting its persist-credentials option to false, while keeping
the pinned checkout action version unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: e28a9ee3-4fd5-4d75-8512-5ad060812b6c

📥 Commits

Reviewing files that changed from the base of the PR and between 8e74cae and dbcc49c.

📒 Files selected for processing (76)
  • .github/workflows/kind-ci-automation.yaml
  • Makefile
  • test/e2e/argocd_route_test.go
  • test/openshift/e2e/ginkgo/fixture/fixture.go
  • test/openshift/e2e/ginkgo/parallel/1-001_alpha_to_beta_dex_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_alpha_to_beta_sso_conflict_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_validate_console_link_test.go
  • test/openshift/e2e/ginkgo/parallel/1-004_beta_to_alpha_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_metrics_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_route_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-023_validate_repo_server_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-030_validate_reencrypt_test.go
  • test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go
  • test/openshift/e2e/ginkgo/parallel/1-041_validate_argocd_sync_alert_test.go
  • test/openshift/e2e/ginkgo/parallel/1-042_validate_status_host_test.go
  • test/openshift/e2e/ginkgo/parallel/1-050_validate_sso_test.go
  • test/openshift/e2e/ginkgo/parallel/1-053_validate_cluster_admin_rbac_test.go
  • test/openshift/e2e/ginkgo/parallel/1-054_validate_deploymentconfig_test.go
  • test/openshift/e2e/ginkgo/parallel/1-055_drop_resource_customizations_test.go
  • test/openshift/e2e/ginkgo/parallel/1-063_validate_dex_liveness_probe_test.go
  • test/openshift/e2e/ginkgo/parallel/1-065_validate_redis_ha_anti_affinity_test.go
  • test/openshift/e2e/ginkgo/parallel/1-067_validate_redis_secure_comm_no_autotls_ha_test.go
  • test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go
  • test/openshift/e2e/ginkgo/parallel/1-081_validate_applicationset_deployment_test.go
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go
  • test/openshift/e2e/ginkgo/parallel/1-096-validate_home_env_argocd_controller_test.go
  • test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-109_validate_reencrypt_termination_policy_test.go
  • test/openshift/e2e/ginkgo/parallel/1-125_validate_server_serving_cert_annotation_restore_test.go
  • test/openshift/e2e/ginkgo/parallel/1-126_validate_servicemonitor_metrics_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-002-validate_backend_service_test.go
  • test/openshift/e2e/ginkgo/sequential/1-004_validate_argocd_installation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-006_validate_machine_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-008_validate-4.9CI-Failures_test.go
  • test/openshift/e2e/ginkgo/sequential/1-010_validate-ootb-manage-other-namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go
  • test/openshift/e2e/ginkgo/sequential/1-020_validate_redis_ha_nonha_test.go
  • test/openshift/e2e/ginkgo/sequential/1-026-validate_backend_service_permissions_test.go
  • test/openshift/e2e/ginkgo/sequential/1-027_validate_operand_from_git_test.go
  • test/openshift/e2e/ginkgo/sequential/1-028-validate_run_on_infra_test.go
  • test/openshift/e2e/ginkgo/sequential/1-035_validate_argocd_secret_repopulate_test.go
  • test/openshift/e2e/ginkgo/sequential/1-036_validate_role_rolebinding_for_source_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-040_validate_quoted_RBAC_group_names_test.go
  • test/openshift/e2e/ginkgo/sequential/1-051_validate_argocd_agent_principal_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_argocd_agent_agent_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_rolebinding_number_test.go
  • test/openshift/e2e/ginkgo/sequential/1-053_validate_argocd_agent_principal_connected_test.go
  • test/openshift/e2e/ginkgo/sequential/1-058_validate_notifications_source_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-059_validate_argocd_agent_terminal_streaming_test.go
  • test/openshift/e2e/ginkgo/sequential/1-064_validate_tcp_reset_error_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_SCC_HA_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_node_selectors_test.go
  • test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go
  • test/openshift/e2e/ginkgo/sequential/1-078_validate_default_argocd_consoleLink_test.go
  • test/openshift/e2e/ginkgo/sequential/1-083_validate_apps_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-084_validate_prune_templates.go
  • test/openshift/e2e/ginkgo/sequential/1-086_validate_default_argocd_role_test.go
  • test/openshift/e2e/ginkgo/sequential/1-092_validate_workload_status_monitoring_alert.go
  • test/openshift/e2e/ginkgo/sequential/1-100_validate_rollouts_resources_creation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-101_validate_rollout_policyrules_test.go
  • test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go
  • test/openshift/e2e/ginkgo/sequential/1-105_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-106_validate_argocd_metrics_controller_test.go
  • test/openshift/e2e/ginkgo/sequential/1-107_validate_redis_scc_test.go
  • test/openshift/e2e/ginkgo/sequential/1-110_validate_podsecurity_alerts_test.go
  • test/openshift/e2e/ginkgo/sequential/1-111_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-112_validate_rollout_plugin_support_test.go
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go
  • test/openshift/e2e/ginkgo/sequential/1-120_validate_running_must_gather.go
  • test/openshift/e2e/ginkgo/sequential/1-121-valiate_resource_constraints_gitopsservice_test.go
  • test/openshift/e2e/ginkgo/sequential/1-122_validate_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-123_validate_list_order_comparison_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • argoproj-labs/argocd-operator (manual)
🚧 Files skipped from review as they are similar to previous changes (42)
  • test/openshift/e2e/ginkgo/sequential/1-026-validate_backend_service_permissions_test.go
  • test/openshift/e2e/ginkgo/sequential/1-040_validate_quoted_RBAC_group_names_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_metrics_test.go
  • test/openshift/e2e/ginkgo/parallel/1-109_validate_reencrypt_termination_policy_test.go
  • test/openshift/e2e/ginkgo/parallel/1-081_validate_applicationset_deployment_test.go
  • test/openshift/e2e/ginkgo/sequential/1-106_validate_argocd_metrics_controller_test.go
  • test/openshift/e2e/ginkgo/sequential/1-111_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-008_validate-4.9CI-Failures_test.go
  • test/openshift/e2e/ginkgo/sequential/1-105_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-110_validate_podsecurity_alerts_test.go
  • test/openshift/e2e/ginkgo/parallel/1-004_beta_to_alpha_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-030_validate_reencrypt_test.go
  • test/openshift/e2e/ginkgo/sequential/1-027_validate_operand_from_git_test.go
  • test/openshift/e2e/ginkgo/sequential/1-120_validate_running_must_gather.go
  • test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go
  • test/e2e/argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-020_validate_redis_ha_nonha_test.go
  • test/openshift/e2e/ginkgo/sequential/1-123_validate_list_order_comparison_test.go
  • test/openshift/e2e/ginkgo/sequential/1-004_validate_argocd_installation_test.go
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_node_selectors_test.go
  • test/openshift/e2e/ginkgo/sequential/1-092_validate_workload_status_monitoring_alert.go
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go
  • test/openshift/e2e/ginkgo/parallel/1-023_validate_repo_server_tls_test.go
  • test/openshift/e2e/ginkgo/sequential/1-101_validate_rollout_policyrules_test.go
  • test/openshift/e2e/ginkgo/sequential/1-035_validate_argocd_secret_repopulate_test.go
  • test/openshift/e2e/ginkgo/sequential/1-083_validate_apps_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go
  • test/openshift/e2e/ginkgo/parallel/1-042_validate_status_host_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_route_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_alpha_to_beta_sso_conflict_conversion_test.go
  • test/openshift/e2e/ginkgo/sequential/1-064_validate_tcp_reset_error_test.go
  • test/openshift/e2e/ginkgo/sequential/1-028-validate_run_on_infra_test.go
  • test/openshift/e2e/ginkgo/parallel/1-125_validate_server_serving_cert_annotation_restore_test.go
  • test/openshift/e2e/ginkgo/parallel/1-001_alpha_to_beta_dex_conversion_test.go
  • test/openshift/e2e/ginkgo/sequential/1-006_validate_machine_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_argocd_agent_agent_test.go
  • test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go
  • test/openshift/e2e/ginkgo/parallel/1-069_validate_redis_secure_comm_autotls_ha_test.go
  • test/openshift/e2e/ginkgo/fixture/fixture.go
  • test/openshift/e2e/ginkgo/parallel/1-031_validate_toolchain_test.go

Comment thread .github/workflows/kind-ci-automation.yaml
})

It("verifies that the default ArgoCD instance from openshift-gitops namespace is recreated when deleted manually", func() {
It("verifies that the default ArgoCD instance from openshift-gitops namespace is recreated when deleted manually", Label("notOnXKS"), func() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Label every OpenShift/OLM-dependent spec.

The following specs still modify operator subscriptions or deployments and will run under --label-filter="!notOnXKS", causing xKS failures or unsupported mutations:

  • test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go#L43-L43: add Label("notOnXKS") to the second It declaration at Line 103.
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L75-L75: add the label to the subscription-level spec at Line 118.
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L197-L197: add the label to the operator-level environment-variable spec at Line 241.
📍 Affects 3 files
  • test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go#L43-L43 (this comment)
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L75-L75
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L197-L197
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go`
at line 43, Label every OpenShift/OLM-dependent spec with notOnXKS: update the
second It declaration in
test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go
at line 103, the subscription-level spec in
test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go
at line 118, and the operator-level environment-variable spec in
test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go at
line 241; the anchor site at
test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go:43
is context only.

Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Comment thread Makefile Outdated
.PHONY: e2e-xks-tests-sequential-ginkgo
e2e-xks-tests-sequential-ginkgo: ginkgo ## Runs Ginkgo e2e sequential tests
@echo "Running GitOps Operator sequential Ginkgo E2E tests..."
$(GINKGO_CLI) -v --trace --label-filter="!notOnXKS" --timeout 240m -r ./test/openshift/e2e/ginkgo/sequential

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Can we rename the label notOnXKS to something positive in grammatical sense? openshift, maybe.

I envision to have multiple labels representing runtime environments or even their individual capabilities and the negation can get confusing, same as declaring what are the non-xks attributes.

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 agree; I was considering using the same labels, such as openshift for tests unique to openshift and xKS or any other platform-dependent labels for their particular environment.
I talked this over with @varshab1210, and she suggested that we create a label indicating where not to run it, like notOnXKS, notOnOpenshift or something along those lines.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I envision to have multiple labels representing runtime environments or even their individual capabilities and the negation can get confusing, same as declaring what are the non-xks attributes.

I made this suggestion to reduce label usage. If we consider adding openshift and xKS labels we would need to add them on every test going forward because we expect features to work on both platforms and hence label it accordingly (unless I misunderstood the intention), whereas if we use something like skip_on_xKS, it needs to be added only when a particular feature is not going to be supported on xKS or skip_on_openshift for that matter for other way around.
@anandrkskd when I initially reviewed the PR, I thought you were using openshift as a way to skip the run on xKS. That seemed a little confusing to me.
I am okay either way, as long as we have a README.md describing the scenarios for labeling

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.

Yes, currently we are using it to skip test that are currently only compatible with openshift, we should only add labels for tests that are platform specific, either openshift or xks. Labels are not required on every test aa most test should be generic and should work on both the platforms.
I will update the Readme.md to make it more transparent as an action item.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We seem to have a different understanding about the semantics of such labels.

What does openshift mean, for example? Is the test specific for openshift so it does not need to run on any other platforms, or it means the test is relevant for openshift and potentially for other platforms as well.

I find the second meaning less practical because - as Varsha pointed out - most of the tests would have most of the labels and the lists will only ever expand. Also, forgetting to add label(s) will cause tests are not executed creating a false sense of security.

I suggest the meaning of specfic: "this tests depends on a feature specific to given environment". That way, most of the tests depending on k8s essentials can remain unlabeled. And we will only bother the authors of platform-specific tests. The downside here is that the test executions will have to exclude N-1 platforms when launching, like --label-filter=!openshift && !..., but like not a big problem given this is done on handful of places (one?) and for handful of non-k8s environments. Here, forgetting to add label to test (forgetting to indicate that tests require special features of a platform) will cause test failure on other platforms, pointing out the mistake.

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 suggest the meaning of specfic: "this tests depends on a feature specific to given environment". That way, most of the tests depending on k8s essentials can remain unlabeled. And we will only bother the authors of platform-specific tests. The downside here is that the test executions will have to exclude N-1 platforms when launching, like --label-filter=!openshift && !..., but like not a big problem given this is done on handful of places (one?) and for handful of non-k8s environments. Here, forgetting to add label to test (forgetting to indicate that tests require special features of a platform) will cause test failure on other platforms, pointing out the mistake.

I agree with what you have mentioned above, labeling depends on a feature specific to platform. When we label a test with openshift it should not run on other platforms, or else it will fails.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

My only concern is people adding the label openshift thinking "Yes, the feature is supported on Openshift" instead of thinking if the feature is only supported on Openshift. We don't want to skip a test run on xKS accidentally. Or someone going through the test thinking tests labelled as openshift are the ones supported on Openshift. A README.md would help clarify this though so its fine by me.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Agreed this needs to be documented thoroughly. @anandrkskd, could you?

thinking "Yes, the feature is supported on Openshift"

If we cant to be super clear about this, we can introduce a dummy wrapper function for Label like Requires("openshift"). But I am not sure it is worth 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 will update the readme, if it is still not clear, we can work towards a wrapper function as last resort.
WDYT?

Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/openshift/e2e/ginkgo/fixture/fixture.go`:
- Around line 112-114: Update the cleanup around the ClusterRole deletion in the
fixture setup to handle the error returned by k8sClient.Delete: ignore it only
when apierrors.IsNotFound(err) is true, and propagate or fail the cleanup for
all other errors so custom-argocd-role cannot remain behind.

In
`@test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go`:
- Line 52: Remove the misspelled OpenShift label from the affected It(...)
blocks so these portable Kubernetes regression tests run in xKS. Apply this to
test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go:52-52,
test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go:84-84,
and
test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go:52-52,
141-141, and 197-197; make no other changes.

In `@test/openshift/e2e/README.md`:
- Line 107: The OpenShift label is misspelled as openshfit across documentation,
Ginkgo tests, and the Makefile’s XKS_LABEL_FILTER. Replace every occurrence with
openshift, preserving the existing label combinations, including the conversion
test’s conversionWebhook label; update test/openshift/e2e/README.md lines
107-107, 114-114, 122-122, 127-127, 132-132, and 141-141, all listed Ginkgo
sites in the specified files, and the corresponding Makefile definition.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 6cc9e939-ffa8-4557-8b1c-764bf21b18e5

📥 Commits

Reviewing files that changed from the base of the PR and between dcb7a8a and 772ee9f.

📒 Files selected for processing (74)
  • .github/workflows/kind-ci-automation.yaml
  • Makefile
  • test/e2e/argocd_route_test.go
  • test/kind-config.yaml
  • test/openshift/e2e/README.md
  • test/openshift/e2e/ginkgo/fixture/fixture.go
  • test/openshift/e2e/ginkgo/parallel/1-001_alpha_to_beta_dex_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_alpha_to_beta_sso_conflict_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_validate_console_link_test.go
  • test/openshift/e2e/ginkgo/parallel/1-004_beta_to_alpha_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_metrics_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_route_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-023_validate_repo_server_tls_test.go
  • test/openshift/e2e/ginkgo/parallel/1-030_validate_reencrypt_test.go
  • test/openshift/e2e/ginkgo/parallel/1-041_validate_argocd_sync_alert_test.go
  • test/openshift/e2e/ginkgo/parallel/1-042_validate_status_host_test.go
  • test/openshift/e2e/ginkgo/parallel/1-050_validate_sso_test.go
  • test/openshift/e2e/ginkgo/parallel/1-053_validate_cluster_admin_rbac_test.go
  • test/openshift/e2e/ginkgo/parallel/1-054_validate_deploymentconfig_test.go
  • test/openshift/e2e/ginkgo/parallel/1-055_drop_resource_customizations_test.go
  • test/openshift/e2e/ginkgo/parallel/1-063_validate_dex_liveness_probe_test.go
  • test/openshift/e2e/ginkgo/parallel/1-081_validate_applicationset_deployment_test.go
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go
  • test/openshift/e2e/ginkgo/parallel/1-096-validate_home_env_argocd_controller_test.go
  • test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-109_validate_reencrypt_termination_policy_test.go
  • test/openshift/e2e/ginkgo/parallel/1-125_validate_server_serving_cert_annotation_restore_test.go
  • test/openshift/e2e/ginkgo/parallel/1-126_validate_servicemonitor_metrics_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-002-validate_backend_service_test.go
  • test/openshift/e2e/ginkgo/sequential/1-004_validate_argocd_installation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-006_validate_machine_config_test.go
  • test/openshift/e2e/ginkgo/sequential/1-008_validate-4.9CI-Failures_test.go
  • test/openshift/e2e/ginkgo/sequential/1-010_validate-ootb-manage-other-namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-018_validate_disable_default_instance_test.go
  • test/openshift/e2e/ginkgo/sequential/1-020_validate_redis_ha_nonha_test.go
  • test/openshift/e2e/ginkgo/sequential/1-026-validate_backend_service_permissions_test.go
  • test/openshift/e2e/ginkgo/sequential/1-027_validate_operand_from_git_test.go
  • test/openshift/e2e/ginkgo/sequential/1-028-validate_run_on_infra_test.go
  • test/openshift/e2e/ginkgo/sequential/1-035_validate_argocd_secret_repopulate_test.go
  • test/openshift/e2e/ginkgo/sequential/1-036_validate_role_rolebinding_for_source_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-040_validate_quoted_RBAC_group_names_test.go
  • test/openshift/e2e/ginkgo/sequential/1-051_validate_argocd_agent_principal_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_argocd_agent_agent_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_rolebinding_number_test.go
  • test/openshift/e2e/ginkgo/sequential/1-053_validate_argocd_agent_principal_connected_test.go
  • test/openshift/e2e/ginkgo/sequential/1-058_validate_notifications_source_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-059_validate_argocd_agent_terminal_streaming_test.go
  • test/openshift/e2e/ginkgo/sequential/1-064_validate_tcp_reset_error_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_SCC_HA_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_node_selectors_test.go
  • test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go
  • test/openshift/e2e/ginkgo/sequential/1-078_validate_default_argocd_consoleLink_test.go
  • test/openshift/e2e/ginkgo/sequential/1-083_validate_apps_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-084_validate_prune_templates.go
  • test/openshift/e2e/ginkgo/sequential/1-086_validate_default_argocd_role_test.go
  • test/openshift/e2e/ginkgo/sequential/1-092_validate_workload_status_monitoring_alert.go
  • test/openshift/e2e/ginkgo/sequential/1-100_validate_rollouts_resources_creation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-101_validate_rollout_policyrules_test.go
  • test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go
  • test/openshift/e2e/ginkgo/sequential/1-105_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-106_validate_argocd_metrics_controller_test.go
  • test/openshift/e2e/ginkgo/sequential/1-107_validate_redis_scc_test.go
  • test/openshift/e2e/ginkgo/sequential/1-110_validate_podsecurity_alerts_test.go
  • test/openshift/e2e/ginkgo/sequential/1-111_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-112_validate_rollout_plugin_support_test.go
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go
  • test/openshift/e2e/ginkgo/sequential/1-120_validate_running_must_gather.go
  • test/openshift/e2e/ginkgo/sequential/1-121-valiate_resource_constraints_gitopsservice_test.go
  • test/openshift/e2e/ginkgo/sequential/1-122_validate_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-123_validate_list_order_comparison_test.go
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • argoproj-labs/argocd-operator (manual)
🚧 Files skipped from review as they are similar to previous changes (50)
  • test/openshift/e2e/ginkgo/sequential/1-035_validate_argocd_secret_repopulate_test.go
  • test/openshift/e2e/ginkgo/sequential/1-004_validate_argocd_installation_test.go
  • test/openshift/e2e/ginkgo/parallel/1-003_validate_console_link_test.go
  • test/openshift/e2e/ginkgo/sequential/1-002-validate_backend_service_test.go
  • test/openshift/e2e/ginkgo/sequential/1-078_validate_default_argocd_consoleLink_test.go
  • test/openshift/e2e/ginkgo/sequential/1-053_validate_argocd_agent_principal_connected_test.go
  • test/openshift/e2e/ginkgo/sequential/1-086_validate_default_argocd_role_test.go
  • test/openshift/e2e/ginkgo/sequential/1-111_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/parallel/1-084_validate_status_host_ingress_test.go
  • test/openshift/e2e/ginkgo/parallel/1-109_validate_reencrypt_termination_policy_test.go
  • test/openshift/e2e/ginkgo/parallel/1-081_validate_applicationset_deployment_test.go
  • test/openshift/e2e/ginkgo/sequential/1-084_validate_prune_templates.go
  • test/openshift/e2e/ginkgo/parallel/1-041_validate_argocd_sync_alert_test.go
  • test/openshift/e2e/ginkgo/sequential/1-105_validate_default_argocd_route_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_metrics_test.go
  • test/openshift/e2e/ginkgo/sequential/1-106_validate_argocd_metrics_controller_test.go
  • test/openshift/e2e/ginkgo/sequential/1-040_validate_quoted_RBAC_group_names_test.go
  • test/openshift/e2e/ginkgo/sequential/1-107_validate_redis_scc_test.go
  • test/openshift/e2e/ginkgo/sequential/1-006_validate_machine_config_test.go
  • test/openshift/e2e/ginkgo/parallel/1-030_validate_reencrypt_test.go
  • test/openshift/e2e/ginkgo/parallel/1-082_validate_node_placement_test.go
  • test/openshift/e2e/ginkgo/parallel/1-096-validate_home_env_argocd_controller_test.go
  • test/e2e/argocd_route_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_rolebinding_number_test.go
  • test/openshift/e2e/ginkgo/sequential/1-123_validate_list_order_comparison_test.go
  • test/openshift/e2e/ginkgo/parallel/1-103_argocd_alpha_to_beta_conversion_test.go
  • test/openshift/e2e/ginkgo/parallel/1-053_validate_cluster_admin_rbac_test.go
  • test/openshift/e2e/ginkgo/sequential/1-008_validate-4.9CI-Failures_test.go
  • test/openshift/e2e/ginkgo/parallel/1-042_validate_status_host_test.go
  • test/openshift/e2e/ginkgo/sequential/1-071_validate_node_selectors_test.go
  • test/openshift/e2e/ginkgo/parallel/1-005_validate_route_tls_test.go
  • test/openshift/e2e/ginkgo/sequential/1-037_validate_applicationset_in_any_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-101_validate_rollout_policyrules_test.go
  • test/openshift/e2e/ginkgo/parallel/1-126_validate_servicemonitor_metrics_config_test.go
  • test/openshift/e2e/ginkgo/parallel/1-054_validate_deploymentconfig_test.go
  • test/openshift/e2e/ginkgo/sequential/1-122_validate_namespace_test.go
  • test/openshift/e2e/ginkgo/sequential/1-058_validate_notifications_source_namespaces_test.go
  • test/openshift/e2e/ginkgo/sequential/1-020_validate_redis_ha_nonha_test.go
  • test/openshift/e2e/ginkgo/parallel/1-004_beta_to_alpha_conversion_test.go
  • test/openshift/e2e/ginkgo/sequential/1-059_validate_argocd_agent_terminal_streaming_test.go
  • test/openshift/e2e/ginkgo/sequential/1-121-valiate_resource_constraints_gitopsservice_test.go
  • test/openshift/e2e/ginkgo/sequential/1-120_validate_running_must_gather.go
  • test/openshift/e2e/ginkgo/parallel/1-063_validate_dex_liveness_probe_test.go
  • test/openshift/e2e/ginkgo/sequential/1-052_validate_argocd_agent_agent_test.go
  • test/openshift/e2e/ginkgo/parallel/1-055_drop_resource_customizations_test.go
  • test/openshift/e2e/ginkgo/sequential/1-027_validate_operand_from_git_test.go
  • test/openshift/e2e/ginkgo/sequential/1-100_validate_rollouts_resources_creation_test.go
  • test/openshift/e2e/ginkgo/sequential/1-051_validate_argocd_agent_principal_test.go
  • Makefile
  • .github/workflows/kind-ci-automation.yaml

Comment on lines +112 to 114
// Clean up old cluster-scoped role from 1-034
_ = k8sClient.Delete(ctx, &rbacv1.ClusterRole{ObjectMeta: metav1.ObjectMeta{Name: "custom-argocd-role"}})

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
git ls-files test/openshift/e2e/ginkgo/fixture/fixture.go
echo '---'
cat -n test/openshift/e2e/ginkgo/fixture/fixture.go | sed -n '90,140p'
echo '---'
rg -n "custom-argocd-role|RunningOnOpenShift|IsOperatorRunningOnOLM|Delete\\(ctx, &rbacv1.ClusterRole" test/openshift/e2e/ginkgo -S

Repository: redhat-developer/gitops-operator

Length of output: 6326


🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo 'FILE:'
cat -n test/openshift/e2e/ginkgo/fixture/fixture.go | sed -n '100,130p'
echo 'MATCHES:'
rg -n "custom-argocd-role|RunningOnOpenShift|IsOperatorRunningOnOLM|apierr.IsNotFound|Delete\\(" test/openshift/e2e/ginkgo -S

Repository: redhat-developer/gitops-operator

Length of output: 18454


Don't ignore ClusterRole delete errors. Ignore only NotFound; unexpected API failures can leave custom-argocd-role behind and contaminate later xKS runs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/openshift/e2e/ginkgo/fixture/fixture.go` around lines 112 - 114, Update
the cleanup around the ClusterRole deletion in the fixture setup to handle the
error returned by k8sClient.Delete: ignore it only when
apierrors.IsNotFound(err) is true, and propagate or fail the cleanup for all
other errors so custom-argocd-role cannot remain behind.

Source: Path instructions

})

It("ensures that if one managed namespace is stuck in deleting state -- due to a finalizer -- it does not block other managed namespaces from being reconciled", func() {
It("ensures that if one managed namespace is stuck in deleting state -- due to a finalizer -- it does not block other managed namespaces from being reconciled", Label("openshfit"), func() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Do not exclude portable Kubernetes regression tests from xKS.

These test specs validate core Argo CD behavior using standard namespace-scoped Kubernetes resources (Namespaces, ConfigMaps, Deployments, StatefulSets). Their test bodies do not require OpenShift-specific APIs (Routes, ConsoleLinks, SCCs, or OLM). Tagging them with the OpenShift label incorrectly excludes them from the xKS test suite, resulting in a loss of valid test coverage.

  • test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go#L52-L52: remove Label("openshfit") from the It(...) block.
  • test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go#L84-L84: remove Label("openshfit") from the It(...) block.
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L52-L52: remove Label("openshfit") from the It(...) block.
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L141-L141: remove Label("openshfit") from the It(...) block.
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L197-L197: remove Label("openshfit") from the It(...) block.
📍 Affects 3 files
  • test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go#L52-L52 (this comment)
  • test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go#L84-L84
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L52-L52
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L141-L141
  • test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go#L197-L197
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go`
at line 52, Remove the misspelled OpenShift label from the affected It(...)
blocks so these portable Kubernetes regression tests run in xKS. Apply this to
test/openshift/e2e/ginkgo/sequential/1-074_validate_terminating_namespace_block_test.go:52-52,
test/openshift/e2e/ginkgo/sequential/1-102_validate_handle_terminating_namespaces_test.go:84-84,
and
test/openshift/e2e/ginkgo/sequential/1-114_validate_imagepullpolicy_test.go:52-52,
141-141, and 197-197; make no other changes.


| Label | Meaning | When to use |
|-------|---------|-------------|
| `openshfit` | Test requires OpenShift-specific features (Routes, ConsoleLinks, OLM Subscriptions, SCCs, etc.) and cannot run on vanilla Kubernetes (KinD, EKS, GKE, AKS). | Add when the test depends on OpenShift APIs or resources not available on non-OCP clusters. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the typo in the OpenShift label name across all documentation and tests.

The label is consistently misspelled as openshfit instead of openshift in the documentation and test files. This mismatch causes confusion and contradicts the PR description, which specifies !openshift. Please correct the spelling across the codebase (including in the XKS_LABEL_FILTER definition in the Makefile).

  • test/openshift/e2e/README.md#L107-L107: change openshfit to openshift.
  • test/openshift/e2e/README.md#L114-L114: change openshfit to openshift.
  • test/openshift/e2e/README.md#L122-L122: change openshfit to openshift.
  • test/openshift/e2e/README.md#L127-L127: change openshfit to openshift.
  • test/openshift/e2e/README.md#L132-L132: change openshfit to openshift.
  • test/openshift/e2e/README.md#L141-L141: change openshfit to openshift.
  • test/openshift/e2e/ginkgo/parallel/1-001_alpha_to_beta_dex_conversion_test.go#L50-L50: change Label("openshfit") to Label("openshift", "conversionWebhook").
  • test/openshift/e2e/ginkgo/sequential/1-083_validate_apps_in_any_namespace_test.go#L57-L57: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-092_validate_workload_status_monitoring_alert.go#L48-L48: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L51-L51: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L75-L75: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L118-L118: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-110_validate_podsecurity_alerts_test.go#L31-L31: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-112_validate_rollout_plugin_support_test.go#L38-L38: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L84-L84: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L103-L103: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L165-L165: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L213-L213: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L245-L245: change Label("openshfit") to Label("openshift").
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L259-L259: change Label("openshfit") to Label("openshift").
🧰 Tools
🪛 LanguageTool

[grammar] ~107-~107: Ensure spelling is correct
Context: ...e | |-------|---------|-------------| | openshfit | Test requires OpenShift-specific feat...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

📍 Affects 8 files
  • test/openshift/e2e/README.md#L107-L107 (this comment)
  • test/openshift/e2e/README.md#L114-L114
  • test/openshift/e2e/README.md#L122-L122
  • test/openshift/e2e/README.md#L127-L127
  • test/openshift/e2e/README.md#L132-L132
  • test/openshift/e2e/README.md#L141-L141
  • test/openshift/e2e/ginkgo/parallel/1-001_alpha_to_beta_dex_conversion_test.go#L50-L50
  • test/openshift/e2e/ginkgo/sequential/1-083_validate_apps_in_any_namespace_test.go#L57-L57
  • test/openshift/e2e/ginkgo/sequential/1-092_validate_workload_status_monitoring_alert.go#L48-L48
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L51-L51
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L75-L75
  • test/openshift/e2e/ginkgo/sequential/1-103-validate-rollouts-imagepullpolicy.go#L118-L118
  • test/openshift/e2e/ginkgo/sequential/1-110_validate_podsecurity_alerts_test.go#L31-L31
  • test/openshift/e2e/ginkgo/sequential/1-112_validate_rollout_plugin_support_test.go#L38-L38
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L84-L84
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L103-L103
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L165-L165
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L213-L213
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L245-L245
  • test/openshift/e2e/ginkgo/sequential/1-120_repo_server_system_ca_trust.go#L259-L259
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/openshift/e2e/README.md` at line 107, The OpenShift label is misspelled
as openshfit across documentation, Ginkgo tests, and the Makefile’s
XKS_LABEL_FILTER. Replace every occurrence with openshift, preserving the
existing label combinations, including the conversion test’s conversionWebhook
label; update test/openshift/e2e/README.md lines 107-107, 114-114, 122-122,
127-127, 132-132, and 141-141, all listed Ginkgo sites in the specified files,
and the corresponding Makefile definition.

Source: Linked repositories

@openshift-ci

openshift-ci Bot commented Jul 21, 2026

Copy link
Copy Markdown

@anandrkskd: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/v4.19-ci-index-gitops-operator-bundle 772ee9f link true /test v4.19-ci-index-gitops-operator-bundle
ci/prow/v4.19-kuttl-parallel 772ee9f link true /test v4.19-kuttl-parallel
ci/prow/v4.14-kuttl-parallel 772ee9f link false /test v4.14-kuttl-parallel

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

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

Labels

kind/enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants