Skip to content

OCPBUGS-76331: fix: truncate job names to respect k8s 63-char limit#1554

Open
fracappa wants to merge 1 commit intoopenshift:mainfrom
fracappa:fcappa/fix-tnf-job-failure-long-hostnames
Open

OCPBUGS-76331: fix: truncate job names to respect k8s 63-char limit#1554
fracappa wants to merge 1 commit intoopenshift:mainfrom
fracappa:fcappa/fix-tnf-job-failure-long-hostnames

Conversation

@fracappa
Copy link

@fracappa fracappa commented Feb 19, 2026

For solving such issues technique like truncating or hashing come into help but using them as stand-alone could be limiting.

  • Truncating: it may keep the information human-readable, but it has higher risks of collision if the nodes share the same prefix (e.g. worker-01.datacenter-east.. and worker-01.datacenter-west.. )
  • Hashing: it guarantees uniqueness, but it losses human readability.

The best approach would be a hybrid one (tuncate + short hash suffix).

For the hashing computation, we rely on FNV-1a Hash since we need to map a string to a small integer (the suffix used for name uniqueness ).

Summary by CodeRabbit

  • New Features

    • Improved job naming: long node names are automatically shortened to meet Kubernetes name limits, producing DNS-friendly, readable, and unique job names.
  • Tests

    • Added extensive unit tests covering name generation, deterministic shortening, collision avoidance, DNS-label compliance, sanitization, and updated tests to rely on the public name-generation behavior.

@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Feb 19, 2026
@openshift-ci-robot
Copy link

@fracappa: This pull request references Jira Issue OCPBUGS-76331, which is invalid:

  • expected the bug to target the "4.22.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

For solving such issues technique like truncating or hashing come into help but using them as stand-alone could be limiting.

  • Truncating: it may keep the information human-readable, but it has higher risks of collision if the nodes share the same prefix (e.g. worker-01.datacenter-east.. and worker-01.datacenter-west.. )
  • Hashing: it guarantees uniqueness, but it losses human readability.

The best approach would be a hybrid one (tuncate + short hash suffix).

For the hashing computation, we rely on FNV-1a Hash since we need to map a string to a small integer (the suffix used for name uniqueness ).

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.

@openshift-ci openshift-ci bot requested review from eggfoobar and fonta-rh February 19, 2026 15:45
@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

Warning

Rate limit exceeded

@fracappa has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 24 minutes and 31 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 49b81e6 and 6cf7813.

📒 Files selected for processing (3)
  • pkg/tnf/pkg/jobs/tnf_test.go
  • pkg/tnf/pkg/tools/jobs.go
  • pkg/tnf/pkg/tools/jobs_test.go

Walkthrough

Adds DNS-safe job naming: new constants and regex, GetJobName now shortens long node names via sanitize and hash-based shortening, plus helper functions shortenNodeName and sanitizeDNSLabel; extensive unit tests added and existing tests updated to use GetJobName for expected names.

Changes

Cohort / File(s) Summary
Job Naming Implementation
pkg/tnf/pkg/tools/jobs.go
Adds MaxK8sResourceNameLength and PodSuffixBuffer constants, a package-level nodeRolePattern regex, imports (hash/fnv, regexp, strings), updates GetJobName to shorten long node names, and adds shortenNodeName and sanitizeDNSLabel helpers.
New Unit Tests
pkg/tnf/pkg/tools/jobs_test.go
Adds comprehensive tests for GetJobName, shortenNodeName, DNS label compliance, determinism, uniqueness, truncation behavior, and sanitizeDNSLabel (nominal, boundary, and edge cases).
Test Usage Updates
pkg/tnf/pkg/jobs/tnf_test.go
Replaces hard-coded expected job-name strings with calls to tools.JobType*.GetJobName(...) so tests derive controller/job keys from the public naming logic.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Test Structure And Quality ⚠️ Warning Test code violates quality requirements: dynamic job name computation inconsistent with hardcoded string in error mock; manual global state resets violate Go testing conventions. Replace hardcoded string with computed jobName variable; refactor global state resets into dedicated setup function or helper utility.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: fixing job name truncation to comply with Kubernetes' 63-character limit for resource names.
Stable And Deterministic Test Names ✅ Passed Test files follow proper Go testing conventions with stable, deterministic test names using static descriptive strings without dynamic content.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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 and usage tips.

@openshift-ci-robot
Copy link

@fracappa: This pull request references Jira Issue OCPBUGS-76331, which is invalid:

  • expected the bug to target either version "4.22." or "openshift-4.22.", but it targets "4.20" instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

For solving such issues technique like truncating or hashing come into help but using them as stand-alone could be limiting.

  • Truncating: it may keep the information human-readable, but it has higher risks of collision if the nodes share the same prefix (e.g. worker-01.datacenter-east.. and worker-01.datacenter-west.. )
  • Hashing: it guarantees uniqueness, but it losses human readability.

The best approach would be a hybrid one (tuncate + short hash suffix).

For the hashing computation, we rely on FNV-1a Hash since we need to map a string to a small integer (the suffix used for name uniqueness ).

Summary by CodeRabbit

Release Notes

  • New Features

  • Improved job naming to automatically shorten long node names while maintaining uniqueness and ensuring compliance with Kubernetes resource naming length constraints.

  • Tests

  • Added comprehensive test coverage for job naming, including validation of deterministic shortening behavior, collision prevention, DNS compliance, and label sanitization across various input scenarios.

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.

@fracappa fracappa force-pushed the fcappa/fix-tnf-job-failure-long-hostnames branch from 56a94c4 to 6b52258 Compare February 19, 2026 16:16
@fracappa
Copy link
Author

/jira refresh

Copy link

@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

🧹 Nitpick comments (1)
pkg/tnf/pkg/tools/jobs_test.go (1)

233-284: Add a DNS-compliance test case for FQDN-style non-standard node names (dots in the fallback path).

All current test node names are either dot-free or match the nodeRolePattern regex (so dots never reach the fallback). Adding a case like "my-custom-host.long-domain-name.example.com" (no role-N prefix) with a realistic maxLength would exercise the fallback path and expose the sanitizeDNSLabel gap flagged in jobs.go.

Suggested additional test case
{
    name:      "Non-standard FQDN node name with dots",
    nodeName:  "my-custom-host.long-domain-name.example.com",
    maxLength: 30,
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/tnf/pkg/tools/jobs_test.go` around lines 233 - 284, Add a test that
exercises the fallback path where node names contain dots so the code path
through shortenNodeName and sanitizeDNSLabel is exercised; specifically add a
case in TestShortenNodeNameDNSCompliance with name "Non-standard FQDN node name
with dots", nodeName "my-custom-host.long-domain-name.example.com" and a
realistic maxLength (e.g. 30) and keep the existing assertions (length <=
maxLength and matching dnsLabelRegex) so the test will expose any sanitization
issues in sanitizeDNSLabel called by shortenNodeName.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/tnf/pkg/tools/jobs.go`:
- Around line 104-106: shortenNodeName can panic when maxLength > len(shortHash)
(shortHash is exactly 8 chars from "%08x"); update shortenNodeName to bound the
slice index by using the minimum of maxLength and len(shortHash) (or otherwise
cap the index) before returning shortHash[:index], and keep references to
shortHash and maxLength in the change so the fix is applied where
shortenNodeName is defined and used (e.g., by GetJobName).
- Around line 115-118: The current fallback returns a raw slice
nodeName[:maxLength] when match == "" and maxPrefixAllowed ≤ 0, which can
include invalid DNS characters; change the fallback in the same function to
follow the earlier pattern and return the capped hash instead of raw nodeName:
when match == "" and maxPrefixAllowed <= 0 compute the deterministic hash used
elsewhere (same hashing helper or algorithm used above), format/truncate it to
maxLength, and return that hashed string rather than nodeName[:maxLength];
update any references to nodeName, match, maxPrefixAllowed and maxLength to use
the hash-return path.
- Around line 120-123: sanitizeDNSLabel currently only trims leading/trailing
dashes and must be replaced so it removes dots and any invalid DNS characters:
update the sanitizeDNSLabel(name string) function to lowercase the input,
replace any character not in [a-z0-9-] (including dots) with '-', collapse
consecutive '-' runs into one, trim leading/trailing '-' and ensure the result
begins and ends with an alphanumeric character (if empty after sanitization
return a safe fallback or hashed suffix as used by the caller). Reference:
sanitizeDNSLabel and nodeRolePattern (the fallback path that calls this) when
locating where to change behavior.

---

Nitpick comments:
In `@pkg/tnf/pkg/tools/jobs_test.go`:
- Around line 233-284: Add a test that exercises the fallback path where node
names contain dots so the code path through shortenNodeName and sanitizeDNSLabel
is exercised; specifically add a case in TestShortenNodeNameDNSCompliance with
name "Non-standard FQDN node name with dots", nodeName
"my-custom-host.long-domain-name.example.com" and a realistic maxLength (e.g.
30) and keep the existing assertions (length <= maxLength and matching
dnsLabelRegex) so the test will expose any sanitization issues in
sanitizeDNSLabel called by shortenNodeName.

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Feb 19, 2026
@openshift-ci-robot
Copy link

@fracappa: This pull request references Jira Issue OCPBUGS-76331, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

No GitHub users were found matching the public email listed for the QA contact in Jira (dhensel@redhat.com), skipping review request.

Details

In response to this:

/jira refresh

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.

@openshift-ci-robot
Copy link

@fracappa: This pull request references Jira Issue OCPBUGS-76331, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

No GitHub users were found matching the public email listed for the QA contact in Jira (dhensel@redhat.com), skipping review request.

Details

In response to this:

For solving such issues technique like truncating or hashing come into help but using them as stand-alone could be limiting.

  • Truncating: it may keep the information human-readable, but it has higher risks of collision if the nodes share the same prefix (e.g. worker-01.datacenter-east.. and worker-01.datacenter-west.. )
  • Hashing: it guarantees uniqueness, but it losses human readability.

The best approach would be a hybrid one (tuncate + short hash suffix).

For the hashing computation, we rely on FNV-1a Hash since we need to map a string to a small integer (the suffix used for name uniqueness ).

Summary by CodeRabbit

  • New Features

  • Improved job naming: long node names are automatically shortened to ensure Kubernetes resource name limits and DNS-friendly labels while preserving readability and uniqueness.

  • Tests

  • Added extensive unit tests covering name generation, deterministic shortening, collision avoidance, DNS compliance, and label sanitization across edge cases.

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.

Copy link

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/tnf/pkg/tools/jobs.go`:
- Around line 66-68: The direct-append branch that does "if len(*nodeName) <=
maxSuffixLen { name = fmt.Sprintf(...) }" bypasses sanitization and allows dots
in short FQDNs; change the logic to always call shortenNodeName when appending
the node suffix (use shortenNodeName(*nodeName) instead of interpolating raw
*nodeName), remove the separate short-path branch, and update shortenNodeName to
early-return the input if it already conforms to DNS label rules (only
alphanumerics and '-', <= maxSuffixLen) so short names are preserved but still
validated/sanitized before being appended to name.

---

Duplicate comments:
In `@pkg/tnf/pkg/tools/jobs.go`:
- Around line 104-106: The code slices shortHash with shortHash[:maxLength]
which panics when maxLength > len(shortHash) (e.g., maxLength == 9 since
shortHash is 8 chars from "%08x"); update the return to cap the slice index by
using min(maxLength, len(shortHash)) (or compute allowed := maxLength; if
allowed > len(shortHash) { allowed = len(shortHash) } and return
shortHash[:allowed]) so shortHash is never indexed out-of-bounds; locate the
slice use of shortHash and the surrounding logic that computes maxLength in this
function and apply this defensive bound.
- Around line 108-117: The fallback path returns unsanitized slices containing
dots; update this path to use the sanitizer and ensure it replaces invalid
characters (not just trims dashes). Specifically, modify sanitizeDNSLabel to
replace illegal characters (e.g., dots) with valid characters (or remove them)
and then in the non-standard fallback use sanitizedPrefix :=
sanitizeDNSLabel(nodeName[:maxPrefixAllowed]) and return fmt.Sprintf("%s-%s",
sanitizedPrefix, shortHash) when sanitizedPrefix != "" ; likewise replace the
final bare return nodeName[:maxLength] with return
sanitizeDNSLabel(nodeName[:maxLength]) so both branches consistently produce
valid DNS labels (reference sanitizeDNSLabel, the prefix variable, and the
fallback return).
- Around line 120-123: sanitizeDNSLabel currently only trims leading/trailing
dashes; update it to produce a valid Kubernetes DNS label by: convert the input
to lowercase, replace every character not in [a-z0-9-] (including dots and
underscores) with '-', collapse consecutive '-' into a single '-', then trim
leading and trailing '-' so the result starts and ends with an alphanumeric
character and matches ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$; if the result becomes
empty, return a safe fallback (e.g., "a" or "default"). Apply these changes
inside the sanitizeDNSLabel function.

@fracappa fracappa force-pushed the fcappa/fix-tnf-job-failure-long-hostnames branch 4 times, most recently from b96a1a0 to 8c0b23f Compare February 19, 2026 17:31
@eggfoobar
Copy link
Contributor

/retest-required

2 similar comments
@fracappa
Copy link
Author

/retest-required

@fracappa
Copy link
Author

/retest-required

@fracappa fracappa force-pushed the fcappa/fix-tnf-job-failure-long-hostnames branch from 767313e to 0b2e15c Compare February 26, 2026 18:11
Copy link

@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: 1

🧹 Nitpick comments (1)
pkg/tnf/pkg/jobs/tnf_test.go (1)

262-265: Minor inconsistency: hardcoded job name in error message.

The job name at lines 262-265 is correctly generated via GetJobName, but line 282 still uses the hardcoded string "tnf-after-setup-job-master-1" in the error response. Consider using jobName for consistency:

♻️ Suggested improvement
 			client.PrependReactor("delete", "jobs", func(action k8stesting.Action) (handled bool, ret runtime.Object, err error) {
-				return true, nil, apierrors.NewForbidden(batchv1.Resource("jobs"), "tnf-after-setup-job-master-1", nil)
+				return true, nil, apierrors.NewForbidden(batchv1.Resource("jobs"), jobName, nil)
 			})

Also applies to: 281-283

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/tnf/pkg/jobs/tnf_test.go` around lines 262 - 265, The test constructs the
Job name via tools.JobTypeAfterSetup.GetJobName and stores it in jobName but the
error message still uses the hardcoded string "tnf-after-setup-job-master-1";
update the error/assertion to reference the jobName variable (and any related
uses around the job/Job object) so the test message is consistent with the
generated name.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/tnf/pkg/tools/jobs.go`:
- Around line 108-114: The slice nodeName[:maxPrefixAllowed] can panic when
maxPrefixAllowed > len(nodeName); update the fallback branch to guard or use the
minimum of maxPrefixAllowed and len(nodeName) before slicing: compute an
effectivePrefixLen := min(maxPrefixAllowed, len(nodeName)) and call
sanitizeDNSLabel(nodeName[:effectivePrefixLen]) (or add a conditional
maxPrefixAllowed <= len(nodeName)) so sanitizeDNSLabel is only given a valid
substring; ensure you still check prefix != "" and return fmt.Sprintf("%s-%s",
prefix, shortHash) as before.

---

Nitpick comments:
In `@pkg/tnf/pkg/jobs/tnf_test.go`:
- Around line 262-265: The test constructs the Job name via
tools.JobTypeAfterSetup.GetJobName and stores it in jobName but the error
message still uses the hardcoded string "tnf-after-setup-job-master-1"; update
the error/assertion to reference the jobName variable (and any related uses
around the job/Job object) so the test message is consistent with the generated
name.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 6b52258 and 0b2e15c.

📒 Files selected for processing (3)
  • pkg/tnf/pkg/jobs/tnf_test.go
  • pkg/tnf/pkg/tools/jobs.go
  • pkg/tnf/pkg/tools/jobs_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/tnf/pkg/tools/jobs_test.go

@fracappa
Copy link
Author

/retest-required

@fracappa fracappa force-pushed the fcappa/fix-tnf-job-failure-long-hostnames branch from 18120d7 to 49b81e6 Compare February 27, 2026 09:29
Copy link

@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: 1

🧹 Nitpick comments (1)
pkg/tnf/pkg/tools/jobs_test.go (1)

143-200: Consider documenting the expected hash values.

The exact hash expectations (e.g., "worker-0-72f9309a", "master-1-64736551") are intentionally hardcoded to verify determinism, which is good. However, these values are derived from FNV-1a and could benefit from a brief comment explaining they are expected outputs from the specific algorithm, making future maintenance easier.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/tnf/pkg/tools/jobs_test.go` around lines 143 - 200, Add a short comment
above TestShortenNodeName (and/or above the hardcoded expected values) stating
that the expected suffixes like "72f9309a" and "64736551" are deterministic
FNV-1a hash outputs produced by shortenNodeName, include the hash algorithm name
(FNV-1a), any truncation/hex length rules used, and note that tests rely on that
deterministic behavior so future changes to shortenNodeName's hashing or
truncation must update these expected values.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/tnf/pkg/jobs/tnf_test.go`:
- Around line 262-265: The delete reactor uses a hardcoded job name in the
NewForbidden error which can diverge from the computed name; replace the literal
"tnf-after-setup-job-master-1" with the computed jobName variable so the error
message matches the actual Job created by
tools.JobTypeAfterSetup.GetJobName(stringPtr("master-1"))—update the
NewForbidden invocation in the delete reactor (where batchv1.NewForbidden is
constructed) to reference jobName instead of the hardcoded string.

---

Nitpick comments:
In `@pkg/tnf/pkg/tools/jobs_test.go`:
- Around line 143-200: Add a short comment above TestShortenNodeName (and/or
above the hardcoded expected values) stating that the expected suffixes like
"72f9309a" and "64736551" are deterministic FNV-1a hash outputs produced by
shortenNodeName, include the hash algorithm name (FNV-1a), any truncation/hex
length rules used, and note that tests rely on that deterministic behavior so
future changes to shortenNodeName's hashing or truncation must update these
expected values.

ℹ️ Review info

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 0b2e15c and 49b81e6.

📒 Files selected for processing (3)
  • pkg/tnf/pkg/jobs/tnf_test.go
  • pkg/tnf/pkg/tools/jobs.go
  • pkg/tnf/pkg/tools/jobs_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/tnf/pkg/tools/jobs.go

@fracappa fracappa force-pushed the fcappa/fix-tnf-job-failure-long-hostnames branch from 62cd2ae to 8d94d49 Compare February 27, 2026 13:32
@fracappa fracappa force-pushed the fcappa/fix-tnf-job-failure-long-hostnames branch from 8d94d49 to 6cf7813 Compare February 27, 2026 13:34
@eggfoobar
Copy link
Contributor

/approve

@jaypoulz
Copy link
Contributor

jaypoulz commented Mar 3, 2026

Looks good to me but I'd like to see a TNF cluster deploy with this. :)

@eggfoobar
Copy link
Contributor

/payload-job periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-ipv6-techpreview periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-techpreview

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 3, 2026

@eggfoobar: trigger 2 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-ipv6-techpreview
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/8e6427b0-1735-11f1-9ae5-c2ea532d302a-0

@eggfoobar
Copy link
Contributor

/payload-job periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-ipv6-techpreview periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-techpreview

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 3, 2026

@eggfoobar: trigger 2 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-ipv6-techpreview
  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/737f52f0-1751-11f1-9496-acd8a1abf454-0

@eggfoobar
Copy link
Contributor

/payload-job periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-techpreview

Somehow this job picked up an older nightly, retrying

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 4, 2026

@eggfoobar: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-main-nightly-4.22-e2e-metal-ovn-two-node-fencing-techpreview

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/51722290-176b-11f1-8f1a-3220a7ac526e-0

@eggfoobar
Copy link
Contributor

/approve

Not sure why the bot didn't apply this

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 4, 2026
@eggfoobar
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 4, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 4, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: eggfoobar, fracappa

The full list of commands accepted by this bot can be found here.

The pull request process is described 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

@fracappa
Copy link
Author

fracappa commented Mar 4, 2026

/verified by @fracappa locally and CI install validated install

  • installing TNF via TNT
  • removing one node from the OCP cluster
  • ssh into that node to change the hostname and use a long one
  • restarting kubelet on that node
  • approving pending CSRs on the cluster to let the node rejoin the cluster
  • repeat the process for the other node
  • verifying the CEO's logs showing error
  • applying changes to solve the problem
  • rechecking the CEO's logs to assert there are no errors

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Mar 4, 2026
@openshift-ci-robot
Copy link

@fracappa: This PR has been marked as verified by @fracappa locally and CI install validated install.

Details

In response to this:

/verified by @fracappa locally and CI install validated install

  • installing TNF via TNT
  • removing one node from the OCP cluster
  • ssh into that node to change the hostname and use a long one
  • restarting kubelet on that node
  • approving pending CSRs on the cluster to let the node rejoin the cluster
  • repeat the process for the other node
  • verifying the CEO's logs showing error
  • applying changes to solve the problem
  • rechecking the CEO's logs to assert there are no errors

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.

@eggfoobar
Copy link
Contributor

/retest-required

1 similar comment
@fracappa
Copy link
Author

fracappa commented Mar 4, 2026

/retest-required

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 4, 2026

@fracappa: The following test 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/e2e-operator 6cf7813 link true /test e2e-operator

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

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants