Skip to content

GCP-298: Add GCP e2e v2 test artifacts directory structure documentation#8446

Draft
cristianoveiga wants to merge 1 commit intoopenshift:mainfrom
cristianoveiga:docs/gcp-v2-test-artifacts-documentation
Draft

GCP-298: Add GCP e2e v2 test artifacts directory structure documentation#8446
cristianoveiga wants to merge 1 commit intoopenshift:mainfrom
cristianoveiga:docs/gcp-v2-test-artifacts-documentation

Conversation

@cristianoveiga
Copy link
Copy Markdown
Contributor

@cristianoveiga cristianoveiga commented May 6, 2026

Summary

Add test-artifacts-directory-structure.md for the e2e-v2-gke CI workflow, following the same structure as the existing ARO HCP / AKS e2e documentation.

The document covers:

  • Full v2 artifact tree (13 explicit CI steps)
  • Quick navigation index for key resources (HostedCluster, NodePool, control plane pods, operator logs)
  • K8sGPT results locations
  • Debugging workflows based on real artifact paths from actual CI runs

Artifact paths were validated against a real successful run.

The v1 e2e-gke workflow is excluded — it is being decommissioned in favour of the v2 framework.

Test plan

  • Verify mkdocs navigation renders correctly (links resolve, no broken pages)
  • Confirm artifact paths match a real e2e-v2-gke run

🤖 Generated with Claude Code

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 6, 2026

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 do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 6, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented May 6, 2026

@cristianoveiga: This pull request references GCP-298 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 "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add test-artifacts-directory-structure.md: full v2 artifact tree (13 steps), quick navigation index, K8sGPT results locations, and per-step debugging workflows
  • Add debugging-guide.md: per-step failure scenarios, PSC/DNS/WIF/CAPG troubleshooting, SHARED_DIR sync race explanation, K8sGPT result interpretation, and orphaned GCP resource cleanup
  • Add ci-infrastructure.md: step chain with mermaid diagrams, how to run/trigger tests, how to add new test scenarios, cost management, and GKE/WIF/PSC/DNS infrastructure details
  • Update mkdocs.yml to add the new pages under Test Information/Debugging

The v1 e2e-gke workflow is excluded — it is being decommissioned in favour of the v2 framework.

Test plan

  • Verify mkdocs navigation renders correctly (links resolve, no broken pages)
  • Confirm artifact paths match a real e2e-v2-gke run (validated against run 2051408287093493760)
  • Verify mermaid diagrams render in the docs site

🤖 Generated with Claude Code

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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 6, 2026

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

Walkthrough

This pull request adds two new documentation pages and updates site navigation. It introduces a GCP E2E Test Debugging Guide (v2 Framework) covering general debugging strategy, step-by-step failure scenarios, and GCP-specific troubleshooting (PSC, DNS, WIF/OIDC, CAPG), plus notes on SHARED_DIR, secrets, K8sGPT results, and orphaned project cleanup. It also adds a GCP E2E Test Artifacts Navigation Guide detailing artifact locations, directory structure, per-run organization, and debugging workflows. The mkdocs configuration was updated to include a "GCP / GKE e2e (v2)" nav subtree.

🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Stable And Deterministic Test Names ✅ Passed PR contains only documentation files (.md and .yml) with no Go test code. The check for Ginkgo test name stability is not applicable as there are no test files in this PR.
Test Structure And Quality ✅ Passed PR adds documentation files only (Markdown and YAML config). The custom check for Ginkgo test code quality is not applicable as no test code was modified.
Microshift Test Compatibility ✅ Passed PR adds only documentation (markdown files and mkdocs.yml config updates), no Ginkgo e2e test code. Custom check for MicroShift test compatibility is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This PR adds only documentation files and configuration updates (docs/mkdocs.yml), not any Ginkgo e2e tests. The SNO compatibility check only applies to new test code additions.
Topology-Aware Scheduling Compatibility ✅ Passed PR adds only documentation files and mkdocs config. No deployment manifests, operator code, or controllers are added or modified. Check is not applicable.
Ote Binary Stdout Contract ✅ Passed PR is documentation-only (markdown + YAML config). No Go source code files modified. OTE Binary Stdout Contract check applies to test binary code; not applicable here.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds only documentation files (debugging guides and artifact navigation). No Ginkgo e2e tests are added, so IPv6 compatibility check is not applicable.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately reflects the main change: adding GCP e2e v2 test artifacts directory structure documentation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 6, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

@openshift-ci openshift-ci Bot added area/documentation Indicates the PR includes changes for documentation and removed do-not-merge/needs-area labels May 6, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (5)
docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md (2)

110-114: ⚡ Quick win

Add language specification to Go code example.

The Go test code example should be marked with the go language identifier to enable syntax highlighting, making it easier for developers to read and understand the test structure.

📝 Proposed fix
-    ```
+    ```go
     g.It("should do something on GCP", Label("platform:gcp"), func(ctx context.Context) {
         // test implementation
     })
🤖 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 `@docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md`
around lines 110 - 114, The code fence for the Go test example is missing the
language identifier; update the markdown code block that contains g.It("should
do something on GCP", Label("platform:gcp"), func(ctx context.Context) { ... })
to use a Go language fence by changing the opening triple backticks to "```go"
so the snippet (containing g.It, Label, and func(ctx context.Context)) renders
with Go syntax highlighting.

79-81: 💤 Low value

Consider adding language specification to command examples.

The Prow command examples would benefit from language specification for consistent rendering. While these are simple commands, marking them as text or bash ensures they render consistently across different Markdown processors.

📝 Proposed fix
-```
+```text
 /test e2e-v2-gke

Trigger a Rehearsal

For testing step registry changes in openshift/release:

- +text
/pj-rehearse pull-ci-openshift-hypershift-main-e2e-v2-gke

Also applies to: 87-89

🤖 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 `@docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md`
around lines 79 - 81, Update the Markdown code fences around the Prow command
examples so they include a language identifier (e.g., change the triple
backticks from ``` to ```text) for the snippets shown in the commands such as
"/test e2e-v2-gke" and "/pj-rehearse
pull-ci-openshift-hypershift-main-e2e-v2-gke" (also apply the same change to the
other example block referenced at lines 87-89) to ensure consistent rendering
across processors.
docs/content/reference/test-information-debugging/GCP/debugging-guide.md (2)

272-288: ⚡ Quick win

Add language specification to bash command code blocks for cleanup commands.

The orphaned project cleanup commands should be marked with the bash language identifier for better syntax highlighting and user experience.

📝 Proposed fix
-```
+```bash
 gcloud projects list --filter="parent.id=614095012709" --format="table(projectId,createTime)"

Cleanup options:

  1. Automated: Use the gcp-orphan-cleanup Claude Code skill to identify and clean up orphaned resources
  2. Manual cleanup:
  • # Delete orphaned GCP project
    gcloud projects delete <project-id>
    
    # Clean up orphaned DNS records
    gcloud dns record-sets list \
      --zone=hypershift-ci-gcp-hcp-openshiftapps-com \
      --project=gcp-hcp-hypershift-ci | grep <orphaned-prefix>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

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

In @docs/content/reference/test-information-debugging/GCP/debugging-guide.md
around lines 272 - 288, The markdown code blocks for the cleanup commands lack a
language hint; update the two manual cleanup code fences that surround the
gcloud commands (the block containing "gcloud projects delete " and
the block with "gcloud dns record-sets list ") to include the bash language
identifier (i.e., change the opening triple backticks to ```bash) so the
examples (gcloud projects delete, gcloud dns record-sets list, and the earlier
gcloud projects list command) render with proper shell syntax highlighting.


</details>

---

`156-169`: _⚡ Quick win_

**Add language specification to bash command code blocks.**

The bash command examples for DNS record management should be marked with the `bash` language identifier to enable syntax highlighting and improve readability.




<details>
<summary>📝 Proposed fix</summary>

```diff
-    ```
+    ```bash
     gcloud dns record-sets list \
       --zone=hypershift-ci-gcp-hcp-openshiftapps-com \
       --project=gcp-hcp-hypershift-ci \
       --filter="name~<cluster-name>"
     ```
 
 3. To clean up orphaned DNS records:
-    ```
+    ```bash
     gcloud dns record-sets delete <record-name> \
       --zone=hypershift-ci-gcp-hcp-openshiftapps-com \
       --project=gcp-hcp-hypershift-ci \
       --type=A
     ```
```

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

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

In @docs/content/reference/test-information-debugging/GCP/debugging-guide.md
around lines 156 - 169, Update the two Markdown code fences containing the
gcloud commands so they include the bash language identifier (i.e., change the
opening triple-backtick lines for the gcloud dns record-sets list and gcloud dns
record-sets delete blocks to ```bash) to enable syntax highlighting; ensure only
the opening fence is changed for each block and the rest of the command content
(the backslashes and flags) remains unchanged.


</details>

</blockquote></details>
<details>
<summary>docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md (1)</summary><blockquote>

`121-220`: _💤 Low value_

**Consider adding language specification to the directory tree code block.**

The fenced code block containing the directory tree structure would render more consistently with an explicit language specification. While the current rendering may work, adding `text` ensures consistent formatting across different Markdown renderers.




<details>
<summary>📝 Proposed fix</summary>

```diff
-```
+```text
 <run-id>/
 ├── build-log.txt
```

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

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

In
@docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md
around lines 121 - 220, Update the fenced code block that renders the directory
tree so it includes an explicit language specifier by changing the opening fence
to ```text; locate the fenced block that begins with "/" in the file
docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md
and modify its opening fence only (the block containing the directory tree
listing) to use "text" for consistent Markdown rendering.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

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

Nitpick comments:
In @docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md:

  • Around line 110-114: The code fence for the Go test example is missing the
    language identifier; update the markdown code block that contains g.It("should
    do something on GCP", Label("platform:gcp"), func(ctx context.Context) { ... })
    to use a Go language fence by changing the opening triple backticks to "```go"
    so the snippet (containing g.It, Label, and func(ctx context.Context)) renders
    with Go syntax highlighting.
  • Around line 79-81: Update the Markdown code fences around the Prow command
    examples so they include a language identifier (e.g., change the triple
    backticks from totext) for the snippets shown in the commands such as
    "/test e2e-v2-gke" and "/pj-rehearse
    pull-ci-openshift-hypershift-main-e2e-v2-gke" (also apply the same change to the
    other example block referenced at lines 87-89) to ensure consistent rendering
    across processors.

In @docs/content/reference/test-information-debugging/GCP/debugging-guide.md:

  • Around line 272-288: The markdown code blocks for the cleanup commands lack a
    language hint; update the two manual cleanup code fences that surround the
    gcloud commands (the block containing "gcloud projects delete " and
    the block with "gcloud dns record-sets list ") to include the bash language
    identifier (i.e., change the opening triple backticks to ```bash) so the
    examples (gcloud projects delete, gcloud dns record-sets list, and the earlier
    gcloud projects list command) render with proper shell syntax highlighting.
  • Around line 156-169: Update the two Markdown code fences containing the gcloud
    commands so they include the bash language identifier (i.e., change the opening
    triple-backtick lines for the gcloud dns record-sets list and gcloud dns
    record-sets delete blocks to ```bash) to enable syntax highlighting; ensure only
    the opening fence is changed for each block and the rest of the command content
    (the backslashes and flags) remains unchanged.

In
@docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md:

  • Around line 121-220: Update the fenced code block that renders the directory
    tree so it includes an explicit language specifier by changing the opening fence
    to ```text; locate the fenced block that begins with "/" in the file
    docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md
    and modify its opening fence only (the block containing the directory tree
    listing) to use "text" for consistent Markdown rendering.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Repository YAML (base), Central YAML (inherited)

**Review profile**: CHILL

**Plan**: Enterprise

**Run ID**: `c02a401b-299f-4a0a-a2ad-c79f184becf0`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 5a83831d8f89367738f778aeb25e65253412b933 and 9b19a27344c401a58e40402af56acc938326ba96.

</details>

<details>
<summary>📒 Files selected for processing (4)</summary>

* `docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md`
* `docs/content/reference/test-information-debugging/GCP/debugging-guide.md`
* `docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md`
* `docs/mkdocs.yml`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@cristianoveiga cristianoveiga force-pushed the docs/gcp-v2-test-artifacts-documentation branch 2 times, most recently from ec6281b to 23f0ff5 Compare May 6, 2026 19:12
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

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 `@docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md`:
- Line 79: Add the missing language identifier "text" to the three unlabeled
fenced code blocks that currently start with the lines "/test e2e-v2-gke",
"/pj-rehearse pull-ci-openshift-hypershift-main-e2e-v2-gke", and the block
beginning with "api/hypershift/v1beta1/gcp.*" so they read as ```text fenced
blocks; update the fences at the occurrences referenced (the blocks containing
those exact strings) to use ```text instead of ``` to satisfy MD040 linting.

In `@docs/content/reference/test-information-debugging/GCP/debugging-guide.md`:
- Line 75: Unlabeled fenced code blocks in debugging-guide.md (examples: the
status selector ".status.version.history[0].state" and path
"dump/artifacts/namespaces/clusters/hypershift.openshift.io/hostedclusters/*.yaml")
are triggering MD040; update each fence to include the appropriate language tag
(use "yaml" for status/manifest snippets like .status.version.history[0].state
and "text" for file/path examples like
dump/artifacts/.../hostedclusters/*.yaml), and apply the same labeling to the
other unlabeled fences referenced in the comment so all code blocks include a
language tag.

In
`@docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md`:
- Line 121: Update the unlabeled fenced code block that contains the artifact
tree (the block starting with "<run-id>/" and listing build-log.txt) by adding a
language hint "text" to the opening fence (i.e., change the opening ``` to
```text) so the block is labeled and MD040 lint errors are avoided; locate the
fenced block in test-artifacts-directory-structure.md around the artifact tree
and modify only the opening fence marker.
🪄 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), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: eedea1e8-80b5-49ee-8f7e-2289b48be6b6

📥 Commits

Reviewing files that changed from the base of the PR and between 9b19a27 and ec6281b.

📒 Files selected for processing (4)
  • docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md
  • docs/content/reference/test-information-debugging/GCP/debugging-guide.md
  • docs/content/reference/test-information-debugging/GCP/test-artifacts-directory-structure.md
  • docs/mkdocs.yml

Comment thread docs/content/reference/test-information-debugging/GCP/ci-infrastructure.md Outdated
Comment thread docs/content/reference/test-information-debugging/GCP/debugging-guide.md Outdated
@cristianoveiga cristianoveiga force-pushed the docs/gcp-v2-test-artifacts-documentation branch 7 times, most recently from c80adfd to 7e7fd8e Compare May 6, 2026 19:38
@cristianoveiga cristianoveiga changed the title GCP-298: Add GCP e2e v2 test artifacts and CI infrastructure documentation GCP-298: Add GCP e2e v2 test artifacts directory structure documentation May 6, 2026
@cristianoveiga cristianoveiga force-pushed the docs/gcp-v2-test-artifacts-documentation branch from 7e7fd8e to 0125282 Compare May 6, 2026 19:43
Add test-artifacts-directory-structure.md for the e2e-v2-gke CI workflow
under docs/content/reference/test-information-debugging/GCP/. The document
covers the full v2 artifact tree (13 steps), quick navigation index,
K8sGPT results locations, and debugging workflows based on real artifact
paths from actual CI runs.

Also updates mkdocs.yml to add the new page under Test Information/Debugging.

The v1 e2e-gke workflow is excluded as it is being decommissioned.

Signed-off-by: Cristiano Veiga <cveiga@redhat.com>
Commit-Message-Assisted-by: Claude (via Claude Code)
@cristianoveiga cristianoveiga force-pushed the docs/gcp-v2-test-artifacts-documentation branch from 0125282 to b1db9bb Compare May 6, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/documentation Indicates the PR includes changes for documentation do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants